Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Win32 API]CreateDialog

renvoie NULL

    26 septembre 2008 à 14:01:40

    Bonjour,
    J'ai créé ma boite de dialogue avec Visual Studio 2008, j'ai bien mon "ressource.h" et mon "dialog.rc"
    sauf que quand je veux créer une instance de la boite de dialogue, j'ai un pointeur NULL.
    GetLastError() me renvoie pourtant 0 => il n'y a donc pas d'erreur normalement
    // dans ressource.h:
    #define IDD_DIALOG1                     101
    
    //dans main.cpp, premières lignes du WinMain()
    	HWND hDlg;
    	hDlg=CreateDialog(hInstance,(LPCTSTR)IDD_DIALOG1,NULL,(DLGPROC)MainProc);
    //	hDlg=CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG1) ,NULL,(DLGPROC)MainProc);
    	int err = GetLastError();
    	if (!hDlg)
    	{
    		MessageBox(hDlg, L"Cannot create window", L"Error", MB_ICONERROR | MB_OK);
    		return 0;
    	}
    

    merci
    • Partager sur Facebook
    • Partager sur Twitter
      27 septembre 2008 à 11:30:41

      Voici la foc sur CreateDialog.

      http://msdn.microsoft.com/en-us/library/ms645434(VS.85).aspx

      tu dis que hDlg est a NULL en sortant ?
      Et tu as err qui vaut 0 ? ça c'est fort étrange...

      Dans ton exemple, tu as donc la messagebox qui s'affiche. par contre, tu n'affiche pas "err", tu passes en débuggage pour le voir ?
      ou alors de quelle maniere l'affiches tu ?
      • Partager sur Facebook
      • Partager sur Twitter

      Recueil de code C et C++  http://fvirtman.free.fr/recueil/index.html

        28 septembre 2008 à 22:33:42

        oui, j'ai la messagebox qui s'affiche et j'utilise le debugger pour boir que GetLastError() renvoie 0
        jai rajouter l'initialisation des Common Controls avant l'appel à CreateDialog() tel que suit:
        INITCOMMONCONTROLSEX icex;
        	icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
        	icex.dwICC  = ICC_LINK_CLASS;
        	if (!InitCommonControlsEx(&icex))
        	{
        		MessageBox(NULL, L"Cannot Initialise C. Controls", L"Error", MB_ICONERROR | MB_OK);
        		return 0;
        	}
        

        et j'ai la messagebox qui apparait pour me signaler qu'InitCommonControlsEx() a planté :(
        • Partager sur Facebook
        • Partager sur Twitter

        [Win32 API]CreateDialog

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown