IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

Comment afficher un menu horizontal sous Visual C++


Sujet :

Visual C++

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 42
    Points
    42
    Par défaut Comment afficher un menu horizontal sous Visual C++
    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.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    Le plus simple: LoadMenu(identifiant), et tu mets ça en membre HMENU de ta WNDCLASS.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 42
    Points
    42
    Par défaut
    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 :

    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 );
    			
    	}
    	
    }
    Merci à tous

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    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);

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    173
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 173
    Points : 42
    Points
    42
    Par défaut
    Merci beaucoup.
    Cela fonctionne !
    Cela n'apparaît pas clairement dans les ouvrages ...
    J'en écrirai un lorsque je serai au point ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment avoir la bibliothèque STL sous Visual C++ ?
    Par kruskal21 dans le forum Visual C++
    Réponses: 4
    Dernier message: 04/07/2007, 14h03
  2. Réponses: 4
    Dernier message: 20/08/2006, 17h21
  3. Réponses: 1
    Dernier message: 31/07/2005, 17h44
  4. comment établir une liaison usb sous visual c++ ?
    Par Baby_Chou dans le forum MFC
    Réponses: 2
    Dernier message: 03/02/2005, 08h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo