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

Windows Discussion :

[debutant] pour debbuger un petit prog avec menu


Sujet :

Windows

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 4
    Points
    4
    Par défaut [resolu][debutant] pour debbuger un petit prog avec menu
    voila mon premier petit prog win (j'essaye d'utiliser un menu ).
    et quand je compile, ça passe mais le prog ne fait rien (mais vraiment rien )
    quelqu'un peut il m'expliquer, ou est mon erreur (certainement stupide d'ailleur )
    voici le source du fichier ressource

    smiley ICON smiley.ico

    test MENU
    BEGIN
    MENUITEM "hello world", 100
    END

    et le source
    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
    #include <windows.h>
    
    LPSTR winNom = "programme test";
    HWND hand;
    
    LRESULT CALLBACK WndProc &#40;HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam &#41;;
    
    void Menu &#40;char * lpszCaption&#41;;
    
    int WINAPI WinMain&#40;HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow&#41;&#123;
    
    	MSG uMsg;
    	WNDCLASS cls;     							// definition de la classe de ma fenetre
    
    	cls.hInstance = hInstance;					// handler de l'instance qui appel la fenetre
    	cls.lpszMenuName = "test";					// nom du menu de la fenetre
    	cls.lpszClassName = winNom ;				// nom de la classe fenetre
    	cls.hIcon = LoadIcon&#40;hInstance,"smiley"&#41;;	// handler sur un icon
    	cls.hCursor = LoadCursor&#40;NULL,IDC_ARROW&#41;;	// handler sur un curseur
    	cls.hbrBackground = &#40;HBRUSH&#41;&#40;COLOR_WINDOW+1&#41;;
    	cls.style = CS_VREDRAW|CS_HREDRAW;
    	cls.lpfnWndProc=&#40;WNDPROC&#41;WndProc;			// pointeur sur la fonction de gestion des messages
    
    
    	if &#40;!RegisterClass&#40;&cls&#41;&#41;
    		return &#40;FALSE&#41;;
    	
    	hand = CreateWindow&#40;winNom,winNom,WS_OVERLAPPEDWINDOW,50,50,200,200,NULL,NULL,hInstance,NULL&#41;;
    	ShowWindow&#40;hand,SW_SHOW&#41;;
    	UpdateWindow &#40;hand&#41;;
    
    	while &#40;GetMessage&#40;&uMsg,NULL,0,0&#41;&#41;&#123;
    		TranslateMessage&#40;&uMsg&#41;;
    		DispatchMessage &#40;&uMsg&#41;;
    	&#125;
    
    	return &#40;uMsg.wParam&#41;;
    &#125;
    
    void Menu &#40;char * lpszCaption&#41;&#123;
    
    	MessageBox&#40;hand,lpszCaption,"message box",MB_OK&#41;;
    
    &#125;
    
    LRESULT CALLBACK WndProc &#40;HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam &#41;&#123;
    	switch &#40;uMsg&#41; &#123;
    
    		case WM_COMMAND &#58; 
    
    			if &#40;LOWORD &#40;wParam&#41; == 100&#41;
    				Menu &#40;"hello world"&#41;;
    			else
    				DefWindowProc&#40;hWnd, uMsg, wParam, lParam&#41;;
    			break;
    
    		case WM_DESTROY &#58;
    
    				PostQuitMessage&#40;0&#41;;
    				break;
    
    		default &#58; DefWindowProc&#40;hWnd, uMsg,wParam, lParam&#41;;
    	&#125;
    	return 0;
    &#125;
    Merci...


    [Modération, Alacazam : Pensez à utiliser la balise [CODE] qui améliore la lisibilité, merci]

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Salut

    Déjà je mettrais des return aux defWindowProc.
    Ensuite Menu("Hello Word") je suis pas bien sûr que ça puisse fonctionner !
    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
    LRESULT CALLBACK WndProc &#40;HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam &#41;&#123;
       switch &#40;uMsg&#41; &#123;
    
          case WM_COMMAND &#58;
    
             if &#40;LOWORD &#40;wParam&#41; == 100&#41;
                Menu &#40;"hello world"&#41;;
             else
                return DefWindowProc&#40;hWnd, uMsg, wParam, lParam&#41;;
             break;
    
          case WM_DESTROY &#58;
    
                PostQuitMessage&#40;0&#41;;
                break;
    
          default &#58; return DefWindowProc&#40;hWnd, uMsg,wParam, lParam&#41;;
       &#125;
       return 0;
    &#125;
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    bon j'ai rajoute les return de mes DefWindowProc (), mais ça marche toujours pas.
    est ce que quelqu'un peut m'expliquer pourquoi mon Menu ("hello world")
    pose probleme

    Encore merci
    (desole pour la balise code je savais pas, ça fait bien longtemps que je suis pas venus sur les forums )

  4. #4
    Candidat au Club
    Inscrit en
    Mars 2002
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Bon ben ça y est j'ai trouve, j'avais juste oublier ces 2 ligne la
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        
    cls.cbClsExtra    = 0;
    cls.cbWndExtra    = 0;
    je vous l'avais bien dit que c'etait stupide
    P.S. le menu marche tres bien

    Merci quand meme

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/03/2018, 19h50
  2. Besoin de d'aide pour démarrer une petite appli avec géoloc
    Par Kaoutchou dans le forum SIG : Système d'information Géographique
    Réponses: 1
    Dernier message: 26/07/2014, 01h08
  3. [CSS] petit problème avec menu déroulant et frame
    Par SylvainB dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 14/02/2006, 14h54
  4. Petit prog pour éxécuter un script PHP
    Par Sub0 dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 3
    Dernier message: 26/04/2005, 15h53
  5. [DEBUTANT] petits soucis avec un prgm de chat
    Par LechucK dans le forum MFC
    Réponses: 8
    Dernier message: 19/01/2004, 16h52

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