Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[54.224.52.210] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте. Создаю контрол EDIT и хочу получить от него сообщения, в первую очередь WM_NCCREATE. Контрол создается, но вот проблема при вводе текста с клавиатуры, контрол не реагирует, текст не вводиться. Подскажите в чем ошибка. Спасибо.
//#define UNICODE #include <iostream> #include "gui.h" form form1; //textbox txt1; #define ID_EDIT_SH 101 WNDPROC subclassingEDIT; LRESULT CALLBACK EditWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam){ if ( uMsg == WM_NCCREATE ){ // } return CallWindowProc(subclassingEDIT, hwnd, uMsg, wParam, lParam); } bool form1_unload(){ PostQuitMessage(0); return 0; } int main(){ //int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ form1.unload = form1_unload; form1.create(300,200); //txt1.create(form1.hwnd,0,0,300,200); WNDCLASS wc; HINSTANCE mod = (HINSTANCE)GetModuleHandle(NULL); ZeroMemory(&wc, sizeof(WNDCLASS)); GetClassInfo(mod, "EDIT", &wc); //wc.hInstance = mod; wc.lpszClassName = "MY_EDIT"; subclassingEDIT = wc.lpfnWndProc; wc.lpfnWndProc = &EditWndProc; RegisterClass(&wc); HWND window = CreateWindow("MY_EDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT, 0, 0, form1.scalewidth, form1.scaleheight, form1.hwnd, NULL, mod, NULL); MSG msg ; while( GetMessage( &msg, 0, 0, 0 ) ) DispatchMessage(&msg) ; } |
Сообщ.
#2
,
|
|
|
Я новичок. И не понимаю при чем тут DefWindowProc
Цитата E.A. @ 1. Где subclassingEDIT 2. Где return DefWindowProc(hwnd, uMsg, wParam, lParam) А это что такое subclassingEDIT = wc.lpfnWndProc; Я получаю адрес оконной процедуры в subclassingEDIT, заменяю на свой и регистрирую новый класс на основе существующего. tablewndproc = (WNDPROC) SetWindowLong(tablehwnd, GWL_WNDPROC, (LONG) WndProcTableSubclassing; Я незнаю как с помощью этого можно получить WM_NCCREATE. |
Сообщ.
#3
,
|
|
|
Эх проблема была в том, что не было TranslateMessage.
|