du83 | Merci de lire ce sujet et de tester ce programme écrit avec Dev-cpp.
- lancez le programme
- appuyez sur quelques touches du clavier : le code de chaque touche s'affiche dans le STATIC
- cliquez sur le bouton
- appuyez sur une touche du clavier : PLUS D'AFFICHAGE DES CODES !
Une explication ?
Code :
- #include <windows.h>
- #include <stdio.h>
- HINSTANCE instance;
- #define ID_PUSHBUTTON_1 110
- HWND hVoir;
- HWND hBouton;
- VOID RemplieFenetrePrincipale(HWND fenetrePrincipale)
- {
- hBouton=CreateWindow(
- "BUTTON",
- "Bouton",
- WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
- 10,50,
- 100,20,
- fenetrePrincipale,
- (HMENU)ID_PUSHBUTTON_1,
- instance,
- NULL);
- hVoir=CreateWindow(
- "STATIC",
- "texte du STATIC",
- WS_CHILD|WS_VISIBLE,
- 10,10,
- 120,20,
- fenetrePrincipale,
- NULL,
- instance,
- NULL);
- }
- LRESULT CALLBACK procedureFenetrePrincipale(HWND fenetrePrincipale, UINT message, WPARAM wParam, LPARAM lParam)
- {
- switch (message)
- {
- case WM_CREATE:
- RemplieFenetrePrincipale(fenetrePrincipale);
- return 0;
- case WM_KEYDOWN:
- char chaine[5];
- sprintf(chaine, "%d", wParam);
- SendMessage(hVoir, WM_SETTEXT, 0, (LPARAM) chaine);
- return 0;
- case WM_COMMAND:
- return 0;
- case WM_DESTROY:
- PostQuitMessage(0);
- return 0;
- default:
- return DefWindowProc(fenetrePrincipale,message,wParam,lParam);
- }
- }
- int WinMain (HINSTANCE cetteInstance, HINSTANCE precedenteInstance, LPSTR lignesDeCommande, int modeDAffichage)
- {
- HWND fenetrePrincipale;
- MSG message;
- WNDCLASS classeFenetre;
- instance = cetteInstance;
- classeFenetre.style = 0;
- classeFenetre.lpfnWndProc = procedureFenetrePrincipale;
- classeFenetre.cbClsExtra = 0;
- classeFenetre.cbWndExtra = 0;
- classeFenetre.hInstance = NULL;
- classeFenetre.hIcon = LoadIcon(NULL, IDI_APPLICATION);
- classeFenetre.hCursor = LoadCursor(NULL, IDC_ARROW);
- classeFenetre.hbrBackground = (HBRUSH)(1 + COLOR_BTNFACE);
- classeFenetre.lpszMenuName = NULL;
- classeFenetre.lpszClassName = "classeF";
- // On prévoit quand même le cas où ça échoue
- if(!RegisterClass(&classeFenetre))
- return FALSE;
- fenetrePrincipale=CreateWindow(
- "classeF",
- "Perte de focus clavier",
- WS_OVERLAPPEDWINDOW,
- CW_USEDEFAULT,
- CW_USEDEFAULT,
- 270,
- 320,
- NULL,
- NULL,
- cetteInstance,
- NULL);
- if (!fenetrePrincipale)
- return FALSE;
- ShowWindow(fenetrePrincipale,modeDAffichage);
- UpdateWindow(fenetrePrincipale);
- while(GetMessage(&message,NULL,0,0))
- {
- TranslateMessage(&message);
- DispatchMessage(&message);
- }
- return message.wParam;
- }
|
|