- #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;
- }
#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;
}