La création d'un sous-menu
Je veux faire un sous menu comme ceci Mozilla Firefox sous-menu:
C'est ce que c'est que maintenant (dans mon programme):
Mais je veux qu'il regarde comme Firefox ont été, il a un menu supplémentaire lorsque vous avez votre souris au-dessus d'elle.
#define ID_SM 1
LRESULT CALLBACK WindowProcedure (HWND hwnd,
UINT message,
WPARAM wParam,
LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
HMENU hMenubar = CreateMenu();
HMENU hMenu = CreateMenu();
AppendMenu(hMenubar, MF_POPUP, (UINT_PTR)hMenu, "Menu");
AppendMenu(hMenu, MF_STRING, ID_SM, "Sub Menu");
/* Would I put it here? How? */
SetMenu(hwnd, hMenubar);
break;
case WM_COMMAND:
if (LOWORD(wParam) == ID_SM) {
/* Not sure if this should be here,
cause I want it to pop up when you mouse over */
}
break;
}
}
Est-ce juste moi, ou sont vos liens cassés? Je ne peux pas les amener à se charger.
Juste pour vous.
Juste pour vous.
OriginalL'auteur Smarty57 | 2012-01-19
Vous devez vous connecter pour publier un commentaire.
Il vous suffit de créer un autre menu et ajouter un sous-menu. Vous pouvez le faire en appelant le même
AppendMenu
function, il vous suffit de définir lauFlags
paramètreMF_POPUP
et passer la poignée vers le sous-menu que l'uIDNewItem
paramètre.Par exemple, quelque chose comme:
Vous n'avez pas besoin de faire quelque chose de spécial en réponse à la
WM_COMMAND
message. Windows affiche automatiquement le menu pop-up lorsque vous passez la souris sur l'option de menu parent. Vous aurez, bien sûr, besoin de gérer les commandes des éléments affichés sur le sous-menu, cependant.OriginalL'auteur Cody Gray
Tout d'abord, créez un nouveau menu et l'ajout d'éléments. Par exemple:
Puis ajouter le menu créé en hMenu:
OriginalL'auteur