2015-01-05 2 views
0

Мой вопрос: В win32 я отправлять сообщения в текстовое поле с (например, образец моего кода)Один в момент C++ выиграть 32

SendMessage(TextBox,EM_SETSEL,-1,-1); //no difference between passing 0 or -1 
SendMessage(TextBox,EM_REPLACESEL,TRUE,(LPARAM)buf2); 
//SendDlgItemMessage(TextBox, IDC_PLAYERLIST, LB_RESETCONTENT, 0, 0); 
//hwnd.refresh(); 
SetWindowText(GetDlgItem(TextBox, IDC_EDIT), ""); 

Но оно не очистить текстовое поле.

Так как я могу очистить текстовое поле, чтобы я мог вывести еще один вопрос, который я хотел бы задать пользователю?

Для получения информации я разрабатываю программное обеспечение, в котором людям задают разные вещи, поэтому мне нужно шаг за шагом, чтобы появляться вопросы не все одновременно.

ответ

1

Предполагая TextBox является HWND вашего фактического управления редактирования, а не его диалог родитель, чем заменить

SetWindowText(GetDlgItem(TextBox, IDC_EDIT), ""); 

С

SetWindowText(TextBox, ""); 
+0

@XLexusX Дело Remy делает то, что 'GetDlgItem' функция принимает диалоговое окно и просматривает его для контроля над ним. Но 'TextBox' уже является элементом управления. Передача его функции, которая ожидает, что диалоговое окно не приведет к чему-либо полезному. Он определенно не найдет элемент управления текстовым полем (поскольку внутри элемента управления TextBox нет контроля). –

+0

Я пробовал вариант (Remy), но он пропускает вопросы и печатает только последний вопрос. Как это сделать задавать вопросы один за другим? – XLexusX

+0

Похоже, вы перебираете свои вопросы, не останавливаясь между ними. Вам нужно будет показать больше своего кода, если вам нужна помощь в этой логике. Пожалуйста, задайте новый вопрос. На этот вопрос (как очистить элемент управления редактированием?) Ответили, как было задано. –