2009-12-03 2 views

답변

1

그런데 한 가지 방법이 자신의 윈도우 프로 시저, 차례로, 전화로 hEdit 컨트롤의 윈도우 프로 시저를 대체 할 몇 가지 적절한 순간

g_OldProc = (WNDPROC)GetWindowLongPtr(hEdit, GWLP_WNDPROC); 
SetWindowLongPtr(hEdit, GWLP_WNDPROC, (LONG_PTR)MyEditWindowProc); 

에서 다음

WNDPROC g_OldProc; 

LRESULT CALLBACK MyEditWindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 
{ 
    if (uMsg == WM_KEYDOWN) 
    { 
     // Handle key down. 
    } 
    return g_OldProc(hwnd, uMsg, wParam, lParam); 
} 

을 사용하는 것입니다 원래의 윈도우 프로 시저

+0

'버튼'과 같은 '기본'클래스에서 사용하기 때문에 SetClassLongPtr이 작동하지 않는다고 가정합니다. – hash

+0

SetClassLongPtr은 호출 후에 생성 된 창에만 영향을 미친다 고 가정합니다. 나는 그 하나에 관해 알지 않는다. 나는 그것을 사용하라는 전화를 한 번도 보지 못했다. – Goz

+0

당신은 다시 한 번 감사드립니다. – hash

0

메시지 루프 수준에서 (DispatchMessage를 호출하기 전에) 메시지를 잡을 수 있습니다. 불쾌하지만 효과가 있습니다.

관련 문제