2013-11-02 1 views
0

Я знаю, как создать приложение gui и как сделать текстовое поле, я просто не знаю, как получить данные из текстового поля, не щелкая по низу (Тема) ?C++ как получить текст из текстового поля потоком, используя win32 api

У меня есть функция добавить, что я могу добавить в WM_CREATE или что?

case WM_CREATE: 
     CreateWindow ("edit", 0, WS_CHILD | WS_VISIBLE | WS_BORDER, 5, 5, 130, 20, hwnd, (HMENU) 1000, GetModuleHandle (NULL), NULL); 
     CreateWindow ("button", "Click me", WS_CHILD | WS_VISIBLE, 5, 30, 130, 20, hwnd, (HMENU) 1001, GetModuleHandle (NULL), NULL); 
     break; 
+0

Чтобы щелкнуть по кнопке, не связаны нитями ... в любом случае с использованием функции GetWindowText(). –

+0

Думаю, вы ищете что: http://stackoverflow.com/questions/3435730/edit-control-text-changed-message-in-c-win32 –

ответ

0

Я не думаю, что вы правильно используете термин thread. Обычно вы получаете текст из текстового поля, когда текстовое поле отправляет сообщение о том, что пользователь изменил текст. Добавьте случай к вашему windproc, который обнаруживает сообщение WM_COMMAND, и посмотрите в этом сообщении уведомление EN_CHANGE из текстового поля.

+0

да, я хочу сделать это, когда пользователь меняет текст в текстовом поле, когда в WM_COMMAND начинает запускать мой код :) , но как добавить случай в windproc, который обнаруживает сообщение WM_command и ищет EN_CHANGE? !! жаль, что я начинаю в программировании gui – user2948009

+0

Боюсь, вам многое предстоит узнать для вас; слишком много, чтобы покрыть в ответе здесь. Пожалуйста, возьмите книгу или найдите учебник по Windows API. Извините, если это звучит грубо. Посмотрите, например. здесь: http://www.winprog.org/tutorial/ Раздел 9 содержит контрольные уведомления. – cdoubleplusgood

0

В чистом Windows API текстого окна (в том числе текстовых полей) может быть получен с помощью WM_GETTEXT сообщений. Есть еще много сообщений, относящихся к text boxes.

+0

я знаю о WM_GETTEXT, но как это сделать в Тема ?! – user2948009

+0

Возможно, я не понимаю, чего вы на самом деле хотите. Вы хотите, чтобы в одном потоке получить текст окна редактирования, созданного в другом потоке? Вы можете использовать GetWindowText или WM_GETTEXT для этого. Или вы хотите обрабатывать уведомления об изменениях, например EN_CHANGE, в другом потоке? – cdoubleplusgood

+0

Я сделал программу, которая получает текст, когда я нажимаю botton, я искал, и я обнаружил, что могу получить текст автоматически только с помощью потока. и я не знаю, как поместить GetWindowText в поток? – user2948009

Смежные вопросы