Soyez le premier à donner votre avis sur cette source.
Snippet vu 6 573 fois - Téléchargée 38 fois
#include <Windows.h> #define IDM_ABOUT 100 HWND hWndMain; void ModifySystemMenu() { // Recherche du menu système de la fenêtre HMENU hSysMenu = GetSystemMenu(hWndMain,FALSE); // Suppression des commandes 'Taille', 'Agrandir" et "Déplacer' du menu système // Cela supprime également toute possibilité de redimensionner, agrandir et déplacer // la fenêtre avec la souris (essayez, pour voir) DeleteMenu(hSysMenu,SC_SIZE,MF_BYCOMMAND); DeleteMenu(hSysMenu,SC_MAXIMIZE,MF_BYCOMMAND); DeleteMenu(hSysMenu,SC_MOVE,MF_BYCOMMAND); // Ajout d'un séparateur AppendMenu(hSysMenu,MF_SEPARATOR,0,NULL); // Ajout du menu 'A propos de...' AppendMenu(hSysMenu,MF_STRING | MF_ENABLED,(UINT)IDM_ABOUT,"A &propos de ..."); } LRESULT CALLBACK MainWndProc(HWND hWnd, UINT message, UINT wParam, UINT lParam) { switch(message) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_SYSCOMMAND: switch (LOWORD(wParam)) { case IDM_ABOUT: MessageBox(hWnd,"C'est t'y pas beau, ça ???","A propos de...",MB_ICONINFORMATION); return 0; default: return DefWindowProc(hWnd,message,wParam,lParam); } break; default: return DefWindowProc(hWnd,message,wParam,lParam); } return 0; } int APIENTRY WinMain(HINSTANCE hInst,HINSTANCE hPrevInst,LPSTR lpCmdLine,int nCmdShow) { WNDCLASS wc; MSG Msg; wc.lpfnWndProc=(WNDPROC)MainWndProc; wc.hCursor=LoadCursor(NULL,IDC_ARROW); wc.hIcon=LoadIcon(NULL,IDI_APPLICATION); wc.style=CS_HREDRAW|CS_VREDRAW; wc.hbrBackground=(HBRUSH)(COLOR_BTNFACE+1); wc.cbClsExtra=0; wc.cbWndExtra=0; wc.hInstance=hInst; wc.lpszClassName="MyWndClass"; wc.lpszMenuName=NULL; RegisterClass(&wc); hWndMain=CreateWindow("MyWndClass","Modification du menu système", WS_OVERLAPPEDWINDOW | WS_VISIBLE | WS_CAPTION | WS_MINIMIZEBOX, CW_USEDEFAULT,0,300,250,NULL,NULL,hInst,NULL); ShowWindow(hWndMain,nCmdShow); UpdateWindow(hWndMain); ModifySystemMenu(); while (GetMessage(&Msg,NULL,0,0)) { TranslateMessage(&Msg); DispatchMessage(&Msg); } return 0; }
14 avril 2010 à 13:29
14 déc. 2005 à 18:35
10/10 !
10 mai 2004 à 23:03
Grace au code ci-dessus, lorsque l'on fait un click droit sur une fenêtre, on obtient le menu suivant :
Restaurer
Déplacer
Taille
Réduire
Agrandire
----------
X Fermer
----------
Visible sur Bureau [1]
Visible sur Bureau [2]
Visible sur Bureau [3]
Visible sur Bureau [4]
....
De manière si l'on est sur le bureau 1 et que l'on sélèctionne "Visible sur Bureau [2]"
La fenêtre sera visible sur le bureau choisi.
Cela fonctionne parfaitement pour les fenêtres
Et je désire faire la même chose avec les barres d'outils et modifier le menu de cette manière :
Barres d'outils >
-------------
Toujours visible
Masquer automatiquement
------------
Visible sur Bureau [1]
Visible sur Bureau [2]
Visible sur Bureau [3]
Visible sur Bureau [4]
....
Mais ce n'est peut-être pas possible puisque ce n'est pas un menu système ...
Merci quand même pour la réponse.
10 mai 2004 à 20:49
Il te va donc falloir trouver une autre méthode (explique ce que tu veux faire, on verra bien)
Désolé, et bon prog quand même
10 mai 2004 à 19:14
Cet exemple m'a permis de modifier les menus systemes de toutes les fenêtres windows.
Mais cela ne fonctionne pas sur les barres outils (en fenêtres).
Y a t-il une solution ?
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.