Je programme en C++ sous Visual Studio 7 et j'esp=E8re que je ne suis
pas hors-sujet ici.
Je souhaiterai cr=E9er un menu sur une fen=EAtre mais en =E9vitant les
ressources (question de portabilit=E9), sans passer par les MFC, et sans
utiliser les menus de types popup, cr=E9er un menu "en dur" donc.
Merci beaucoup de m'indiquer comment proc=E9der, si cela est possible
car je suis un peu sceptique.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christian ASTOR
JPLafarge wrote:
Je programme en C++ sous Visual Studio 7 et j'espère que je ne suis pas hors-sujet ici. Je souhaiterai créer un menu sur une fenêtre mais en évitant les ressources (question de portabilité), sans passer par les MFC, et sans utiliser les menus de types popup, créer un menu "en dur" donc. Merci beaucoup de m'indiquer comment procéder, si cela est possible car je suis un peu sceptique.
Je programme en C++ sous Visual Studio 7 et j'espère que je ne suis
pas hors-sujet ici.
Je souhaiterai créer un menu sur une fenêtre mais en évitant les
ressources (question de portabilité), sans passer par les MFC, et sans
utiliser les menus de types popup, créer un menu "en dur" donc.
Merci beaucoup de m'indiquer comment procéder, si cela est possible
car je suis un peu sceptique.
Je programme en C++ sous Visual Studio 7 et j'espère que je ne suis pas hors-sujet ici. Je souhaiterai créer un menu sur une fenêtre mais en évitant les ressources (question de portabilité), sans passer par les MFC, et sans utiliser les menus de types popup, créer un menu "en dur" donc. Merci beaucoup de m'indiquer comment procéder, si cela est possible car je suis un peu sceptique.
JPLafarge wrote: > Je programme en C++ sous Visual Studio 7 et j'espère que je ne suis > pas hors-sujet ici. > Je souhaiterai créer un menu sur une fenêtre mais en évitant les > ressources (question de portabilité), sans passer par les MFC, et sans > utiliser les menus de types popup, créer un menu "en dur" donc. > Merci beaucoup de m'indiquer comment procéder, si cela est possible > car je suis un peu sceptique.
Ok merci, en fait j'ai fait CreateMenu, InsertMenuItem puis SetMenu et ça marche bien apparement. Je pensais pas que c'était aussi simple.
Cdt JP Lafarge
On 17 nov, 23:29, Christian ASTOR <casto...@club-internet.fr> wrote:
JPLafarge wrote:
> Je programme en C++ sous Visual Studio 7 et j'espère que je ne suis
> pas hors-sujet ici.
> Je souhaiterai créer un menu sur une fenêtre mais en évitant les
> ressources (question de portabilité), sans passer par les MFC, et sans
> utiliser les menus de types popup, créer un menu "en dur" donc.
> Merci beaucoup de m'indiquer comment procéder, si cela est possible
> car je suis un peu sceptique.
JPLafarge wrote: > Je programme en C++ sous Visual Studio 7 et j'espère que je ne suis > pas hors-sujet ici. > Je souhaiterai créer un menu sur une fenêtre mais en évitant les > ressources (question de portabilité), sans passer par les MFC, et sans > utiliser les menus de types popup, créer un menu "en dur" donc. > Merci beaucoup de m'indiquer comment procéder, si cela est possible > car je suis un peu sceptique.
Ok merci, en fait j'ai fait CreateMenu, InsertMenuItem puis SetMenu et ça marche bien apparement. Je pensais pas que c'était aussi simple.
Cdt JP Lafarge
JPLafarge
On 17 nov, 23:29, Christian ASTOR wrote:
JPLafarge wrote: > Je programme en C++ sous Visual Studio 7 et j'espère que je ne suis > pas hors-sujet ici. > Je souhaiterai créer un menu sur une fenêtre mais en évitant les > ressources (question de portabilité), sans passer par les MFC, et sans > utiliser lesmenusde types popup, créer un menu "en dur" donc. > Merci beaucoup de m'indiquer comment procéder, si cela est possible > car je suis un peu sceptique.
Heu en fait j'ai parlé un peu trop vite. J'ai réussi à obtenir une barre horizontale avec des items sur lesquels on peut cliquer mais pas de menus qui se "déroulent" à partir des items de la barre de menu. principale. J'ai vraiment tout essayé notamment ceci :
HMENU hmenu=CreateMenu();
HMENU hmenupop=CreatePopupMenu(); // ou simple CreateMenu, c'est pareil MENUITEMINFO popmenuinfo; popmenuinfo.cbSize=sizeof(popmenuinfo); popmenuinfo.fMask=MIIM_STRING; popmenuinfo.fType=MIIM_STRING; popmenuinfo.dwTypeData="popup"; popmenuinfo.cch=sizeof("popup"); InsertMenuItem(hmenupop,1,true,&popmenuinfo); // false ou true 0 ou 1 ça ne change rien
MENUITEMINFO menuinfo; menuinfo.cbSize=sizeof(menuinfo); menuinfo.fMask=MIIM_SUBMENU; menuinfo.fType=MFT_MENUBARBREAK; // ou MFT_MENUBREAK, pareil menuinfo.hSubMenu=hmenupop;
InsertMenuItem(hmenu,1,true,&menuinfo); // ou AppendMenu ça ne change rien HWND hwnd=CreateWindow("test","nom fenetre",WS_OVERLAPPEDWINDOW| WS_VISIBLE,100,300,400,500,NULL,hmenu,hInstance,NULL); DrawMenuBar(h); // Avec ou sans c'est pareil aussi (y compris dans la boucle de message) SetMenu(h,hmenu) // Avec ou sans pareil également.
Aucunes de ces fonctions ne renvoient d'erreurs. Merci beaucoup parce que ça commence à se corser.
Cordialement JP Lafarge
On 17 nov, 23:29, Christian ASTOR <casto...@club-internet.fr> wrote:
JPLafarge wrote:
> Je programme en C++ sous Visual Studio 7 et j'espère que je ne suis
> pas hors-sujet ici.
> Je souhaiterai créer un menu sur une fenêtre mais en évitant les
> ressources (question de portabilité), sans passer par les MFC, et sans
> utiliser lesmenusde types popup, créer un menu "en dur" donc.
> Merci beaucoup de m'indiquer comment procéder, si cela est possible
> car je suis un peu sceptique.
Heu en fait j'ai parlé un peu trop vite. J'ai réussi à obtenir une
barre horizontale avec des items sur lesquels on peut cliquer mais pas
de menus qui se "déroulent" à partir des items de la barre de menu.
principale. J'ai vraiment tout essayé notamment ceci :
HMENU hmenu=CreateMenu();
HMENU hmenupop=CreatePopupMenu(); // ou simple CreateMenu, c'est
pareil
MENUITEMINFO popmenuinfo;
popmenuinfo.cbSize=sizeof(popmenuinfo);
popmenuinfo.fMask=MIIM_STRING;
popmenuinfo.fType=MIIM_STRING;
popmenuinfo.dwTypeData="popup";
popmenuinfo.cch=sizeof("popup");
InsertMenuItem(hmenupop,1,true,&popmenuinfo); // false ou true 0 ou 1
ça ne change rien
MENUITEMINFO menuinfo;
menuinfo.cbSize=sizeof(menuinfo);
menuinfo.fMask=MIIM_SUBMENU;
menuinfo.fType=MFT_MENUBARBREAK; // ou MFT_MENUBREAK, pareil
menuinfo.hSubMenu=hmenupop;
InsertMenuItem(hmenu,1,true,&menuinfo); // ou AppendMenu ça ne change
rien
HWND hwnd=CreateWindow("test","nom fenetre",WS_OVERLAPPEDWINDOW|
WS_VISIBLE,100,300,400,500,NULL,hmenu,hInstance,NULL);
DrawMenuBar(h); // Avec ou sans c'est pareil aussi (y compris
dans la boucle de message)
SetMenu(h,hmenu) // Avec ou sans pareil également.
Aucunes de ces fonctions ne renvoient d'erreurs.
Merci beaucoup parce que ça commence à se corser.
JPLafarge wrote: > Je programme en C++ sous Visual Studio 7 et j'espère que je ne suis > pas hors-sujet ici. > Je souhaiterai créer un menu sur une fenêtre mais en évitant les > ressources (question de portabilité), sans passer par les MFC, et sans > utiliser lesmenusde types popup, créer un menu "en dur" donc. > Merci beaucoup de m'indiquer comment procéder, si cela est possible > car je suis un peu sceptique.
Heu en fait j'ai parlé un peu trop vite. J'ai réussi à obtenir une barre horizontale avec des items sur lesquels on peut cliquer mais pas de menus qui se "déroulent" à partir des items de la barre de menu. principale. J'ai vraiment tout essayé notamment ceci :
HMENU hmenu=CreateMenu();
HMENU hmenupop=CreatePopupMenu(); // ou simple CreateMenu, c'est pareil MENUITEMINFO popmenuinfo; popmenuinfo.cbSize=sizeof(popmenuinfo); popmenuinfo.fMask=MIIM_STRING; popmenuinfo.fType=MIIM_STRING; popmenuinfo.dwTypeData="popup"; popmenuinfo.cch=sizeof("popup"); InsertMenuItem(hmenupop,1,true,&popmenuinfo); // false ou true 0 ou 1 ça ne change rien
MENUITEMINFO menuinfo; menuinfo.cbSize=sizeof(menuinfo); menuinfo.fMask=MIIM_SUBMENU; menuinfo.fType=MFT_MENUBARBREAK; // ou MFT_MENUBREAK, pareil menuinfo.hSubMenu=hmenupop;
InsertMenuItem(hmenu,1,true,&menuinfo); // ou AppendMenu ça ne change rien HWND hwnd=CreateWindow("test","nom fenetre",WS_OVERLAPPEDWINDOW| WS_VISIBLE,100,300,400,500,NULL,hmenu,hInstance,NULL); DrawMenuBar(h); // Avec ou sans c'est pareil aussi (y compris dans la boucle de message) SetMenu(h,hmenu) // Avec ou sans pareil également.
Aucunes de ces fonctions ne renvoient d'erreurs. Merci beaucoup parce que ça commence à se corser.
Cordialement JP Lafarge
Christian ASTOR
JPLafarge wrote:
InsertMenuItem(hmenu,1,true,&menuinfo); // ou AppendMenu ça ne change
InsertMenu(), comme j'avais dit, notamment pour le popup.
Oui comme ça ça marche, merci beaucoup. En fait j'avais délaissé InsertMenu pour InsertMenuItem car la documentation MSDN indique :
"The InsertMenu function has been superseded by the InsertMenuItem function. You can still use InsertMenu, however, if you do not need any of the extended features of InsertMenuItem."
Donc a priori il est possible de faire ce que fait InsertMenu avec InserMenuItem ? (ou alors j'ai rien compris).
Cordialement, JP Lafarge
On 7 déc, 00:14, Christian ASTOR <casto...@club-internet.fr> wrote:
JPLafarge wrote:
> InsertMenuItem(hmenu,1,true,&menuinfo); // ou AppendMenu ça ne chan ge
InsertMenu(), comme j'avais dit, notamment pour le popup.
Oui comme ça ça marche, merci beaucoup.
En fait j'avais délaissé InsertMenu pour InsertMenuItem car la
documentation MSDN indique :
"The InsertMenu function has been superseded by the InsertMenuItem
function. You can still use InsertMenu, however, if you do not need
any of the extended features of InsertMenuItem."
Donc a priori il est possible de faire ce que fait InsertMenu avec
InserMenuItem ? (ou alors j'ai rien compris).
Oui comme ça ça marche, merci beaucoup. En fait j'avais délaissé InsertMenu pour InsertMenuItem car la documentation MSDN indique :
"The InsertMenu function has been superseded by the InsertMenuItem function. You can still use InsertMenu, however, if you do not need any of the extended features of InsertMenuItem."
Donc a priori il est possible de faire ce que fait InsertMenu avec InserMenuItem ? (ou alors j'ai rien compris).
Cordialement, JP Lafarge
Christian ASTOR
JPLafarge wrote:
Donc a priori il est possible de faire ce que fait InsertMenu avec InserMenuItem ? (ou alors j'ai rien compris).
Si, mais ça complique et c'est source d'erreur. Tu avais par exemple oublié MIIM_STRING.