evo, ovako bi to tebalo da ide (verovatno ima gresaka, ali je to princip):
Mozes slicnu stvar da uradis i sa SetWindowsHookEx(), pogledaj MSDN
Da, mozes i da pozoves originalnu proceduru PRE tvoje obrade, recimo to je dobra ideja za WM_PAINT procesiranje (kada kontrola/prozor zavrsi svoje crtanje a onda ti dodas nesto, na primer ikonicu na dugme u zavisnosti od statusa, itd..)
Code:
WNDPROC OrigProc; // originalna procedura
LONG APIENTRY MainWndProc(HWND hWnd, UINT message, UINT wParam, LONG lParam)
{
switch (message) {
case WM_PAINT:
// Prozor je dobio WM_PAINT poruku, radis obradu
break;
case WM_LBUTTONDOWN:
// Levo dugme misa je pritisnuto
break;
default:
}
/* zovi originalnu proceduru */
return (OrigProc)(hWnd, message, wParam, lParam);
}
void DeoKoda()
{
/* evo kako da instaliras 'peek' proceduru */
HWND prozorKojiTeZanima;
OrigProc = GetWindowLong(prozorKojiTeZanima, GWL_WNDPROC);
SetWindowLong(prozorKojiTeZanima, GWL_WNDPROC, (WNDPROC)MainWndProc);
}
[
Ovu poruku je menjao Ivan Dimkovic dana 28.10.2001 u 11:18 AM GMT]
DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos:
http://www.digicortex.net/node/17 Gallery:
http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! -
https://github.com/psyq321/PowerMonkey