WinApi - komunikat WM_INITMENUPOPUP i pobranie info o menu

0

Kod jest taki:

case WM_INITMENUPOPUP:
      {MENUITEMINFO mi;
        mi.cbSize = sizeof(MENUITEMINFO);
        mi.fMask = MIIM_TYPE | MIIM_ID;
        HMENU sub = GetSubMenu(mainMenu,0);
        GetMenuItemInfo(sub,0,TRUE,&mi);

      }

Czyli: przed wyswietleniem submenu musze pobrac informacje o nim, a konkretnie o wszystkich itemach z submenu. Sprawdzilem, ze sub wskazuje na prawidlowe menu, ale program mi sie wykrzacza na GetMenuItemInfo i nie rozumiem dlaczego :|

Wszystkie inne funkcje pobierajace info o menu dzialaja, tylko GetMenuItemInfo powoduje komunikat "Program wykonał nieprawidłową operację" :|
Jezeli submenu wezme z wParam, czyli cos takiego:

sub = (HMENU) wParam;

dzieje sie to samo.

Potrzebuje zaawansowanych informacji o wszystkich itemach, ktore daje tylko ta funkcja. Co zrobic zeby to zadzialalo?

0

w 2000/xp jest kopiowany string pod adres dwTypeData,
ale tam nie dajesz bufora, ani nie zerujesz tej struktury...
sub = GetSubMenu(menu, 0) -> zawsze daje pierwsze sub menu z menu,
chyba zamiast tego z initpopap (idSub = wparam).

0

w 2000/xp jest kopiowany string pod adres dwTypeData,
ale tam nie dajesz bufora, ani nie zerujesz tej struktury...

Pomoglo, ale zeby nie wiem co sam bym na to nie wpadl - a to dlatego, ze jesli nie bylo to pod WM_INITMENUPOPUP,a pod WM_CREATE to dzialalo....

sub = GetSubMenu(menu, 0) -> zawsze daje pierwsze sub menu z menu,
chyba zamiast tego z initpopap (idSub = wparam).

Wiem o tym. Ale ten kod naprawde nie wyglada tak, jak tu podalem - chodzilo mi tylko o to dlaczego ta funkcja mi sie wykrzacza.

1 użytkowników online, w tym zalogowanych: 0, gości: 1