Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ввод в текстовое поле, узнать когда происходит 
:(
    Опции темы
I_Am_Rock
Дата 21.7.2010, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 523
Регистрация: 18.1.2008

Репутация: нет
Всего: 15



Добрый день
Как узнать, что пользователь вводит значение в текстовое поле?

Просто по аналогии с главным окном. Там происходит регистрация класса (RegisterClass), у которого есть параметр lpfnWndProc. И в этой процедуре сообщение сравнивается, например, с WM_COMMAND или WM_LBUTTONDOWN. И если они равны, то переход и т.д.

А вот с текстовым полем этого нет. В CreateWindowEx создается поле с классом Edit. Т.е. класс ведь не регистрируется и поэтому не понятно, как задать ему его lpfnWndProc и обрабатывать сообщения (например, WM_SETTEXT).

Подскажите пожалуйста чайнику!  smile 

Это сообщение отредактировал(а) I_Am_Rock - 21.7.2010, 12:15
PM MAIL WWW   Вверх
JAPH
Дата 21.7.2010, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 8.1.2007
Где: Ленобласть

Репутация: 5
Всего: 23



Непонятный вопрос. Вы хотите создать свое текстовое поле со специфическим поведением?

Если создаете стандартный системный класс, то он посылает уведомления родительскому окну через сообщение WM_COMMAND.

http://msdn.microsoft.com/en-us/library/bb775458(VS.85).aspx

Цитата
EN_UPDATE    

Sent when an edit control is about to redraw itself. This notification code is sent after the control has formatted the text, but before it displays the text. This makes it possible to resize the edit control window, if necessary. The parent window of the edit control receives this notification code through a WM_COMMAND message. 


wParam = EN_UPDATE << 16 | id edit-а
lParam = hwnd edit-а


А если вы хотите более полный контроль над окном, то можно сделать сабклассинг: SetWindowLong(hwndEdit, GWL_WNDPROC, lpfnNewWndProc).
http://www.wasm.ru/article.php?article=1001020


Это сообщение отредактировал(а) JAPH - 21.7.2010, 15:18


--------------------
Что непонятно - спрашиваем smile
PM MAIL ICQ   Вверх
I_Am_Rock
Дата 21.7.2010, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 523
Регистрация: 18.1.2008

Репутация: нет
Всего: 15



Спасибо большое.  smile

Только один вопрос -  в случае со всеми другими компонентами так же, как и в этом случае, посылается WM_COMMAND главному окну?

Это сообщение отредактировал(а) I_Am_Rock - 21.7.2010, 15:51
PM MAIL WWW   Вверх
JAPH
Дата 21.7.2010, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 312
Регистрация: 8.1.2007
Где: Ленобласть

Репутация: 5
Всего: 23



Не всегда. Обычно способ нотификации указывается в документации контрола)

http://msdn.microsoft.com/en-us/library/bb...4(v=VS.85).aspx
Цитата
Except for trackbars, which use the WM_HSCROLL and WM_VSCROLL messages to notify their parent of changes, common controls send notifications as either WM_COMMAND or WM_NOTIFY messages, as specified in the reference topic for the notification. Typically, older notifications (those that have been in the API for a long time) use WM_COMMAND.



--------------------
Что непонятно - спрашиваем smile
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.0672 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.