Bonjour,
Je débute en Visual C++.
J'ai créé un menu à l'aide de l'éditeur de ressources.
Il a pour identifiant MAINMENU;
Comment dois je procéder pour l'afficher sur ma fenêtre principale ?
Merci à tous.
Bonjour,
Je débute en Visual C++.
J'ai créé un menu à l'aide de l'éditeur de ressources.
Il a pour identifiant MAINMENU;
Comment dois je procéder pour l'afficher sur ma fenêtre principale ?
Merci à tous.
Le plus simple: LoadMenu(identifiant), et tu mets ça en membre HMENU de ta WNDCLASS.
Merci pour ta réponse mais je ne vois pas du tout où mettre LoadMenu. J'ai essayé pas mal de choses et notamment mettre "IDR_MENU1" dans le champ lpszMenuName. Mais le menu ne s'affiche pas.
Voici mon code :
Merci à tous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120 // Includes #include <windows.h> #include "resource.h" // Function Declarations LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); // WinMain int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow) { WNDCLASS wc; HWND hWnd; HDC hDC; HGLRC hRC; MSG msg; BOOL quit = FALSE; // register window class wc.style = CS_OWNDC; wc.lpfnWndProc = WndProc; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.hInstance = hInstance; wc.hIcon = LoadIcon( NULL, IDI_APPLICATION ); wc.hCursor = LoadCursor( NULL, IDC_ARROW ); wc.hbrBackground = (HBRUSH)GetStockObject( BLACK_BRUSH ); wc.lpszMenuName = NULL; wc.lpszClassName = "GLSample"; RegisterClass( &wc ); // create main window hWnd = CreateWindow( "GLSample", "It's very easy to build a window ...", WS_CAPTION | WS_POPUPWINDOW | WS_VISIBLE, 0, 0, 512, 512, NULL, NULL, hInstance, NULL ); // program main loop while ( !quit ) { // check for messages if ( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) ) { // handle or dispatch messages if ( msg.message == WM_QUIT ) { quit = TRUE; } else { TranslateMessage( &msg ); DispatchMessage( &msg ); } } else { } } // destroy the window explicitly DestroyWindow( hWnd ); return msg.wParam; } // Window Procedure LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_CREATE: return 0; case WM_CLOSE: PostQuitMessage( 0 ); return 0; case WM_DESTROY: return 0; case WM_KEYDOWN: switch ( wParam ) { case VK_ESCAPE: PostQuitMessage(0); return 0; } return 0; default: return DefWindowProc( hWnd, message, wParam, lParam ); } }
Ah, je n'avais pas vu que c'était "menu name" et non pas menu tout court.
Normalement, ça devrait marcher en faisant ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
Merci beaucoup.
Cela fonctionne !
Cela n'apparaît pas clairement dans les ouvrages ...
J'en écrirai un lorsque je serai au point ...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager