Graffin Demo or Die ! | bon j'ai trouvé un truc, c pas tres propre, mais ca reste à rendre "plus mieux" :
Code :
- ...
- OrigProc=(WNDPROC)SetWindowLong(hwnd,GWL_WNDPROC,(long)MakeShadow); // hwnd c le handle de winamp -> FindWindow ("Winamp v1.x", NULL); par exemple
- SendMessage(hwnd, WM_CREATE, NULL, NULL);
- SetWindowLong(hwnd,GWL_WNDPROC,(long)OrigProc);
- ...
- // La proc (WNDPROC) qui est appellée en "complément" de OrigProc qui est celle de winamp
- LRESULT APIENTRY MakeShadow(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- if (uMsg == WM_CREATE) { // mouais :/
- SetClassLong(hwnd, GCL_STYLE, (LONG)GetClassLong(hwnd, GCL_STYLE) | CS_DROPSHADOW);
- }
- return CallWindowProc(OrigProc, hwnd, uMsg, wParam, lParam);
- }
|
à faire à l'init
ah oui pour que ca marche correct il faut au tt début :
#define _WIN32_WINNT 0x0501 // pour XP, 0x0500 c win2k
pour info, CS_DROPSHADOW = 0x00020000 Message édité par Graffin le 16-04-2003 à 23:28:30
|