[WinAPI, C++] Funkcje do globalnego HMENU w petli WinProc nie dzialaja
Ostatnio zmodyfikowano 2012-11-29 22:14
berkov Temat założony przez niniejszego użytkownika |
[WinAPI, C++] Funkcje do globalnego HMENU w petli WinProc nie dzialaja » 2012-11-29 21:48:09 Hey ho! Wyglada na to ze choc hMenu jest zdeklarowane globalniea potem wgrane przez: HMENU hMenu=LoadMenu(hInstance,MAKEINTRESOURCE(900)); w glowym ciele programu (WinMain) to za kazdym razem jak staram sie do menu dostac w petli (WinProc) przez np CheckMenuItem() albo TrackPopupMenu() to hMenu jest PUSTE! tu dwa przyklady ktore nie dzialaja (tresc z WinProc oczywiscie) : 1: switch( msg ) { case WM_RBUTTONDOWN: { POINT point; point.x = LOWORD( lParam ); point.y = HIWORD( lParam ); ClientToScreen( hwnd, & point ); if( !GetSubMenu( hMenu, 0 ) ) MessageBox( 0, "NIE DZIALA!!", 0, 0 ); TrackPopupMenu( GetSubMenu( hMenu, 0 ), 0, point.x, point.y, 0, hwnd, NULL ); } break; }
2: switch( wParam ) { case 520: { MessageBox( 0, "Jestem TU, teraz powinno sie pokazac menu,.. i nic !", 0, 0 ); g_Checked = ~g_Checked; CheckMenuItem( hMenu, 105, MF_BYCOMMAND |( g_Checked ) ? MF_CHECKED : MF_UNCHECKED ); } break;
Jak debugguje to w WinProc hMenu zawsze jest rowne 0x00000000. Oczywiscie wystarczy ze ponownie wywolam load menu poprzez hMenu=LoadMenu((HINSTANCE)GetWindowLong(hwnd, GWL_HINSTANCE),MAKEINTRESOURCE(900)); i wtedy wszystko jest w porzadku.. ale z tego co sie orientuje jesli taki load zostal wykonany w glownym ciele (WinMenu) progeamu to nie trzebo ga za kazdym razem juz wywolywac... czy ktos wie co robie nie tak? dzieki b. |
|
berkov Temat założony przez niniejszego użytkownika |
» 2012-11-29 22:14:13 Dziala!
pol dnia nad tym spedzilem a dopeiro jak to tu napisalem to sie zorientowalem w czym jest blad.
Deklaracja bylal globalna a ja ponownie deklarowalem zmienna w winmain.
poprostu usunalem HMENU z przed hMenu i juz wszystko smiga.
Swoja droga dziwne ze kompilator sie nie przyczepil ze deklaruje ponownie ta sama zmienna... ale to juz nie istotne.
sorry i dzieki hhahaha |
|
« 1 » |