Já myslím, že WM_PAINT tam jde, ale ta hákovací funkce GetMsgProc ji zpracuje dřív než je poslána ke zpracování oknu (tedy oknu plochy), no a plocha se překreslí celá najednou "po svém" a to naše kreslení smaže. V oststních případech se ten problém neprojeví, protože třeba při tažení nějakého okna po ploše jde těch zpráv WM_PAINT "mraky", tedy po každém posunutí o pixel. Takže pak jediná "chyba" by byla že tam může zůstat mezera šířky 1 pixelu, což není vidět a zdá se, že vše chodí jak má. Ale při miminalizaci všech oken jde zpráva WM_PAINt jen jednou.
Pokud budete mít hákovací funkce v exe, budete chtytat všehcny zprávy všech oken vaší aplikace, ale nikoli systému. Jde o to, že tu dll-ku s háky si proces, který máme hákovat musí natáhnout do svého paměťového prostoru, což z vašeho exe nemůže. Nakonec i MSDN to přímo tak praví, že háky přes celý systém musí být v externí DLLce.
P.S. děkuji za pochvalu i přes to, že v redakci opět trochu pozměnili nadpis a ten "úvodní text". Jádrem článku je použití háků a nikoli kteslení tlačítka start, to je použito pouze jako demonstrace. Také výsledek není nijak cool, s graficku podobou už si musí pohrát každý sám, to není téma článku. No a to C++ v názvu článku je také přidáno redakcí, již několikrát se na toto téma zde objevil rozhorlený příspěvek "co je to za blbost ikony v c++ (například))".