I 다음 MFC 응용 프로그램의 UI 구조가 있습니다SetWindowHookEx 블록 WM_ERASEBKGND 중첩 된 창에서
Main Frame
- CView derived class
- CWnd derived class
--- CMFCTabCtrl derived class
---- CDialog derived class
CMFCTabCtrl가 길게 혼잡 윈도우에게 등등 등등 파생 클래스 등을 설정할 수 있습니다 ...
당신이 만약을 깊이로 위를 정의 할 수 있습니다 창문의 나무로 생각 트리의 깊이는 의미 일 때 문제가 발생 0
:
Main Frame
- CView derived class
- CWnd derived class
--- CMFCTabCtrl derived class
----- CWnd derived class
------- CMFCTabCtrl derived class
-------- CDialog derived class
트리 깊이가 0입니다 경우
- :
내가 내 응용 프로그램에 다음 코드를 추가 : 다음 응용 프로그램을 실행하고 메인 프레임 크기를 조정할
extern HHOOK hHook = nullptr; LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam) { return CallNextHookEx(hook, nCode, wParam, lParam); } hHook = SetWindowsHookEx(WH_CALLWNDPROC, &HookProc, AfxGetInstanceHandle(), GetCurrentThreadId());
, 나는 다음을 발견 대화 상자에
WM_ERASEBKGND
메시지가 수신됩니다. - 트리 깊이가 1 인 경우 메시지가 대화 상자에 수신되지 않습니다.
제 설명이 충분히 명확 해졌기를 바랍니다.
후크를 설정하면 극적인 방식으로 동작에 영향을줍니다.
이전에 이런 종류의 문제가 발생 했습니까?