DialogBox, erstellt kein Dialog wenn CONTROL in Resource???



  • Hallo Leute,

    normalerweise baue ich mein Fenster selbst zusammen, da ich aber oft kleine Tools mach die ich benötige (habe die Tools sonst mit dem BCB zusammengeklickt), dachte ich das ich mal, aus aktuellem Themenanlass einen Resourcen Editor Verwende und das dann doch mit Dev-C++ schreibe (besser ist es, und kleiner auch).

    Doch da giebt es ein Problem bei mir, wenn ein CONTROL in der Resource ist, kann er den Dialog nicht erstellen 😞

    Da meine eigentliche Resource nicht ging, habe ich eine abgespeckte Erstellt zum Testen, aber ich steig nicht dahinter warum es nicht geht.

    Ich habe mal den Source hier, ist eh nicht viel:

    Resourcen Header:

    /* Weditres generated include file. Do NOT edit */
    #define	DLG_0100	100
    #define	tab_01	101
    #define	bla_02	102
    #define	btn_push	103
    #define	lib_03	104
    

    Resourcen datei (.rc)

    /* Wedit generated resource file */
    #include <windows.h>
    #include <commctrl.h>
    #include "resource.h"
    
    DLG_0100 DIALOGEX 6, 3, 413, 209
    STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | 
        WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
    EXSTYLE WS_EX_CLIENTEDGE
    CAPTION "TestDlg"
    FONT 10, "Arial"
    BEGIN
        CONTROL         "", tab_01, "SysTabControl32", 0x0 | WS_CLIPSIBLINGS, 6, 
                        6, 401, 196  /* Dieses Control will er nicht */
        CONTROL         "", bla_02, "SysListView32", 0x241 | WS_BORDER, 30, 42, 
                        231, 114   /* Dieses auch nicht */
        PUSHBUTTON      "Push", btn_push, 292, 48, 40, 14
        COMBOBOX        lib_03, 282, 68, 100, 89, CBS_DROPDOWN | CBS_SORT | 
                        WS_VSCROLL | WS_TABSTOP
    END
    

    Die Main.cpp

    #include <windows.h>
    #include <commctrl.h>
    #include "resource.h"
    
    BOOL CALLBACK DialogProc(HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                       LPSTR lpCmdLine, int nCmdShow)
    {
       static int dres;
       dres =  DialogBox(hInstance, MAKEINTRESOURCE(DLG_0100), NULL, DialogProc);
       if (dres == -1) MessageBox(NULL,"Kann kein Dialog erstellen :-(","Fehler",MB_OK);
       return dres;   /* Wenn CONTROL in Resource dann -1 und tschüss */
    }
    
    BOOL CALLBACK DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
       switch(message)
       {
       case WM_INITDIALOG:
          /* Später nach Test */
          return (TRUE);
    
       case WM_DESTROY:
       case WM_CLOSE:
          /* Weg mit dem Dreck */
          EndDialog(hDlg,0);
          return (TRUE);
    
       case WM_COMMAND:
          /* Controlls Funktion Aufrufe */
          /* wenn mal was geht, kommt hier auch was rein */
          switch (LOWORD(wParam))
          {
          case IDCANCEL:
             EndDialog(hDlg,0);
             return (TRUE);
    
          default:
             break;
          }
          return (FALSE);
       } 
       return (FALSE);
    }
    

    Weiß jemand was ich falsch mache?



  • ohne es gelesen zu haben: InitCommonControls(Ex)



  • Danke, das war es.
    Allerdings hatte ich das vorher mit drinn und da gabs nur Absturz mit unbekannten fehler (ja libs waren eingebunden, sonst hätte sich der Linker beschwert).
    Es ging aber zum Teil wenn ich dem Dialog selbst ne nummer gab und nicht über ein #define, also alles ein merkwürdiges verhalten, jetzt habe ich Init... wieder drinn, wegem deinem tipp und mein test Dlg läuft, mal sehen ob das eigentliche auch geht!



  • Das haut trotzdem nicht alles hin, das Prog stürzt ständig ab.
    Ich vermute mal das liegt an meinem Dev, werde erstmal neu installieren und dann nochmal checken.

    Man das Testen verschwendet mehr zeit als wenn ich das selber einbaue.



  • So, der kackt beim Menu ab und etc.., ich habe die Schnauze voll und progge jetzt meinen eigenen Visualen Editor, ohne Resourcen, sondern direkte Klassen die ich Anspreche etc., überleg mir gerade das ganze Konzept und es soll auch eigene Controlls nach bestimten Muster Unterstützen, vieleicht hat später mal jemand Interesse Controlls dazu zu schreiben ich habe auch einige die ich dazu Umschreibe.

    Warum ist das "angeblich schwere" so leicht und Sicher und das "angeblich" leichte doch so schwer und unsicher 😕

    Nichts da, beschlossene Sache, MiC++ha macht ne Visuelle IDE, Lite Version (Windows standards) Kostenlos, Pro-Version (Erweitere Controlls) kostenpflichtig für 10,-
    Ende der Durchsage... ⚠



  • Womit du dann dein kleines Toll nach 5 Jahren Entwicklungszeit an deiner eigenen IDE dann auch endlich hast. 😃



  • Denkst du bei Controll immer an Trolle oder warum schreibst du es mit 2 l?



  • Luckie schrieb:

    Womit du dann dein kleines Toll nach 5 Jahren Entwicklungszeit an deiner eigenen IDE dann auch endlich hast. 😃

    Mein kleines Tool habe ich bereits fertig, von 7:20 bis 9:55, also rund 2,5 Stunden und ich habe gestern nen halben Tag verschwendet mit Dialog Resourcen, ich mein das mit dem Dialog über Resourcen ist schon ne feine und einfache Sache, aber leider nicht so sicher, ich denke mal mit dem VC++ ist es besser als mit Freeware Compiler, denn selbst der eingebaute Editor bringt Compilerfehler in der Resource.

    Und wenn ich 5 Jahre benötigen würde, müßte ich meine Familie zum Sozialamt schicken, ich will ja nicht den BCB nachbauen sondern bleib im Rahmen von DevCpp, halt in Visueller Hinsicht und das alles in Klassen gefasst ist etc.
    Ist auch nicht schwer oder zu Aufwendig, das Einzige was mir paar Probleme machen wird, ist die Steuerung des Compilers/Linker, ich möchte nähmlich auch ein automatisches Einbinden der Libs, welche benötigt werden. Na wird schon, schaun wir mal.

    bla bla schrieb:

    Denkst du bei Controll immer an Trolle oder warum schreibst du es mit 2 l?

    Da denke ich nicht an Trolle, ich verhau mich da wohl mit dem Deutschen "Kontroll", aber ohne dumme Rechtschreib-Sprüche ist jeder Thread Langweilig 😉


Anmelden zum Antworten