Dialog beendet sich sofort



  • hi,
    ich wollte das erste mal eine Dialog basierte Anwendung machen.

    int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
      DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DialogProc);
      return 0;
    }
    

    Dann habe ich mal verschiedene Events ausprobiert [z.b. WM_ -INITIALIZE, -CREATE, -DESTROY] und denen jeweils mit einer MessageBox zugeteilt.
    Aber direkt nach starten des Programmes kommt die Messagebox von WM_DESTROY, und von INITIALIZE oder CREATE sehe ich nichts..

    Was mache ich falsch? Danke... 🙂



  • Common Control oder Rich Edit auf dem Dialog? Wenn ja, die Controls müssen vorher intialisiert werden.



  • Ich weiß zwar nicht wie, aber ich habe irgendwie unter Resourcen-Includes das hier bekommen:

    //{{NO_DEPENDENCIES}}
    // Microsoft Developer Studio generated include file.
    // Used by resource.rc
    //
    #define VS_VERSION                      1
    #define IDD_MAIN                        101
    #define IDC_URL                         1001
    #define IDC_SLIDER                      1003
    #define IDC_USER                        1004
    #define IDC_RESULT                      1005
    #define IDC_MSG                         1006
    #define IDC_BF                          1007
    
    // Next default values for new objects
    // 
    #ifdef APSTUDIO_INVOKED
    #ifndef APSTUDIO_READONLY_SYMBOLS
    #define _APS_NEXT_RESOURCE_VALUE        102
    #define _APS_NEXT_COMMAND_VALUE         40001
    #define _APS_NEXT_CONTROL_VALUE         1008
    #define _APS_NEXT_SYMED_VALUE           101
    #endif
    #endif
    

    [ich habe eigentlich nur die Controls genutzt, die in der Toolbox waren]



  • Initialisier mal die CommonControls (sieht stark danach aus, als würdest Du daraus Controls verwenden) und zeig mal Deine DialogProc.

    BTW: Die Nachricht, die Dein Dialog beim Erstellen bekommt, heißt WM_INITDIALOG.



  • öhm, du hast Recht, glaub ich...
    nachdem ich alle Steuerelemente erntfernt hatte, funktionierte initdialog auf einmal..

    Wie initialisier ich common controls? ^^'



  • InitCommonControls() in WinMain und comctl32.h ...



  • hab ich beides gemacht, es funktioniert trotzdem nicht...
    wie sieht das comctl32.h denn genau aus, weil ich das aus dem internet habe...



  • hhgj schrieb:

    hab ich beides gemacht, es funktioniert trotzdem nicht...
    wie sieht das comctl32.h denn genau aus, weil ich das aus dem internet habe...

    Wie aus dem Internet?
    Wenn du die Datei bei dir nicht hattest. Dann lad dir mal das aktuelle PSDK runter!

    MfG schirrmie


  • Mod

    Was sagt GetLastError nachdem der nicht Dialog erzeugt wurde?



  • ich habe immer
    InitCommonControls();
    und
    #include <commctrl.h>
    #include <commdlg.h>
    sowie eine gelinkte
    comctl32.lib



  • Laut MSDN sollte man aber InitCommonControlsEx benutzen!

    MSDN schrieb:

    Registers and initializes the common control window classes. This function is obsolete. New applications should use the InitCommonControlsEx function.

    MfG schirrmie



  • was gehört denn alles zu diesen commoncontrols?...


  • Mod

    List View, Tree View, Pregress Bar, Tooltips etc. pp


Anmelden zum Antworten