· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Обработка нажатия Enter в ListBox

<< . 1 . 2 .

Посл.отвђт Сообщенiе


Дата: Сен 16, 2003 01:38:08

Вот как я делаю:
myproc PROC hDlg:DWORD, wMsg:DWORD, wParam:DWORD, lParam:DWORD
	.if	wMsg==WM_INITDIALOG
		; .........
	.elseif	wMsg==WM_VKEYTOITEM
		nop			; на этот nop я ставлю бряк
	.else
		xor	eax, eax
		ret
	.endif
	xor	eax, eax
	inc	eax
	ret

myproc endp

в результате ловятся все нажатия кроме Enter, Tab и Escape


Дата: Сен 16, 2003 01:42:27

Стили ListBox'a: WS_CHILD, WS_WISIBLE, WS_HSCROLL, WS_TABSTOP, LBS_NOTIFY и LBS_WANTKEYBOARDINPUT


Дата: Сен 16, 2003 05:03:31

У тебя диалог что-ли?


Дата: Сен 16, 2003 06:31:26

The Svin
WM_INITDIALOG фигурирует неспроста ;)

Sk. Inc.
Enter, Tab, Esc и некоторые другие комбинации обычно перехватывает диалог, т.е. контрол об этом даже не узнаёт. После нажатия на ENTER обработчик диалога должен получить WM_COMMAND. wParam == IDOK или Id дефолтовой кнопки. В MSDN это описано более детально.


Дата: Сен 16, 2003 06:51:39

Перехватить WM_COMMAND wParam=ID_OK и проверить где фокус.
Если ListBox - обработать.


Дата: Сен 16, 2003 06:56:17

Или субклассировать ListBox и обработать WM_GETDLGCODE.


Дата: Сен 16, 2003 14:10:23

Sk. Inc.
для Subclassинга
SetWindowLong функция кажется...


Дата: Сен 16, 2003 14:36:01

Quantum
Спасибо, что про дефолтовую кнопку напомнил - это то, что и было надо. Теперь все круто.

All
Огромная благодарность всем за полезные советы.

<< . 1 . 2 .


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.060