У меня есть элемент управления редактированияEdit введите ключ
HWND hInput = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",
WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL,
0, 0, 100, 100, hwnd, (HMENU)IDC_MAIN_INPUT, GetModuleHandle(NULL), NULL);
и кнопка:
HWND hSendButton = CreateWindowEx(WS_EX_CLIENTEDGE,"BUTTON","Send!",
BS_DEFPUSHBUTTON | WS_VISIBLE | WS_CHILD,
0,0,0,0,hwnd,(HMENU)IDC_MAIN_SENDBUTTON,GetModuleHandle(NULL),NULL);
Есть ли способ, чтобы увидеть, когда Enter клавиша нажата во время набора текста в элементе управления редактирования и отправить сообщение, как нажата кнопка?
Я думаю, что, может быть,
SendMessage(hwnd,WM_COMMAND,(WPARAM)IDC_MAIN_SENDBUTTON,LPARAM(0));
будет делать работу для отправки сообщения, но я все еще застряли в захвате клавишу ввода.
Заранее спасибо.
Традиционный способ сделать это, чтобы объявить таблицу акселератора, который определяет ENTER, как отображение в 'IDC_MAIN_SENDBUTTON' , Также обратите внимание, что 'GetModuleHandle (NULL)' не является лучшей практикой, поскольку он помещает ваши окна в пространство имен основного исполняемого файла, а не модуль, который создал окно. –