J'ai créé une zone d'édition et cela fonctionnait correctement, mais après avoir ajouté un WndProc personnalisé, le texte "mon édition" n'est pas visible et ne prend pas en compte cliqué.Le contrôle d'édition ne peut pas obtenir le focus ou le texte après le sous-classement
HWND handle=CreateWindowExW(0,L"Edit",L"my edit",WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_CENTER | ES_MULTILINE | ES_AUTOVSCROLL,
0,0,200,200,window.handle,0,GetModuleHandle(NULL),0);
Jusqu'à là, il travaillait très bien
Après avoir mis cette procédure de fenêtre, le contrôle d'édition ne fonctionne plus comme prévu
SetWindowLongPtr(handle,GWLP_WNDPROC,(LRESULT)staticWndProc);
LRESULT CALLBACK staticWndProc(HWND handle, UINT uMsg, WPARAM wParam, LPARAM lParam){
switch (uMsg){
case WM_LBUTTONDOWN:
std::wcout << handle << L" click\n"; //click event works
break;
default:
return DefWindowProcW(handle,uMsg,wParam,lParam);
}
return 0;
}
Dois-je gérer manuellement un événement ou modifier ma drapeaux de style de construction?
Cela fonctionne bien, merci! Je pensais que c'était correct de laisser une procédure de fenêtre unique avec DefWindowProcW mais apparemment j'avais encore besoin de cette CallWndProc. – shuji