Ich werde aus dem Resourcen FAQ nicht schlau.


  • Mod

    Nur als Hinweis:
    Ressourcen werden entweder unter dem Namen oder einer ID (16bit weit) gespeichert. Die Ladefunktionen, nehmen alle nur einen LPCTSTR an, also einen Pointer auf einen constant char array.

    Damit die Ladefunktionen auch Ressourcen durch IDs laden können existiert einfach die Regel: Ist das HIWORD==0, dann ist das LOWORD die ID nach der gesucht wird. Nun ist aber ein UINT kein LPCSTR. FÜR diesen cast gibt es den netten Makro MAKEINTRESOURCE, der aus einem UINT einfach einen LCTSTR Pointer castet.

    Noch etwas: Die Lader Funktionen, die ein hInstance Handle haben, können keine Datei laden, wie Du es hier versucht hast, die laden immer nur eine Ressource aus dem entsprechenden Modul.



  • Jo danke Jungs.

    Jetzt sind alle Probleme beseitigt.



  • *Thema wieder ausgrab*

    Ich hab aus diesem Tutorial mal diese Dialogbox nachgemacht.

    IDR_TEXTDIALOG DIALOGEX 20, 20, 180, 70
    STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION |
                                                  WS_SYSMENU
    CAPTION "Dialogfeld (Textfeld)"
    FONT 8, "MS Sans Serif"
    BEGIN
       LTEXT "Passwort     : ", -1, 36, 8, 45, 8
       EDITTEXT IDC_EDIT1, 83,6,61,13, ES_AUTOHSCROLL | WS_BORDER
       LTEXT "Nummer       : ", -1, 36, 24, 45, 8
       EDITTEXT IDC_EDIT2, 83,22,61,13, ES_AUTOHSCROLL | WS_BORDER
       PUSHBUTTON "&Bestätigen", IDOK, 33, 50, 50, 14
       PUSHBUTTON "&Abbrechen", IDCANCEL, 95, 50, 50 ,14,WS_GROUP
    END
    

    Ich hab aus WS_POPUP mal WS_CHILD gemacht, damit es in meiner Fullscreenanwendung angezeigt wird.

    Jetzt ist das Problem,dass das Programm einfach hängen bleibt und ich in diese Dialogbox nichts schreiben kann und auch das Programm via DestroyWindow(hWnd); nicht schließen kann.

    Wovon hängt es ab,dass man Kontrolle über die Dialogbox und dann hinterher Kontrolle über die Fullscreenanwendung wiederkriegt?



  • Ja hast du denn beim erstellen dein Fenster als Parent angegeben? Sonnst ist WS_CHILD ja auch unsinnig ... Ruf den Dialog doch einfach Modal auf 🙂



  • Natürlich!

    Ich komm mir jedes mal vor wie ein Trottel wenn ich mit meinen Problemen herkomme. -.-

    Danke



  • Hör doch einfach auf zu programmieren, ist ja gräßlich!



  • Pedis
    Scriptkiddies sind hier nicht erwünscht. ALSO GEH!

    Tobi3000
    Kann jedem mal passieren 😉



  • Tobi3000 schrieb:

    Natürlich!

    Ich komm mir jedes mal vor wie ein Trottel wenn ich mit meinen Problemen herkomme. -.-

    Danke

    Hehe^^ Der Sinn von einem Forum ist es doch, dass man Fragen stellt, also tust du doch nur das, was man eben an einem Forum so macht 🙂

    Zum Thema:
    - Sicher, dass WS_CHILD richtig ist? Bin mir nicht sicher, aber ist das nicht nur für Steuerelemente á lá Buttons, Editboxen und so gedacht? Indem man einen Parent angibt, wird das Fenster dadurch doch schon automatisch "Child"-Fenster.

    - Kann es vielleicht sein, dass sich die Fullscreenanwendung einfach wieder über den Dialog "stellt", du ihn aber einfach noch siehst, weil nicht drübergezeichnet wird?

    - Damit der Dialog vor deiner Fullscreen-Anwendung angezeigt wird, müsste auch sowas gehen: SetWindowPos( hDialog, hFullscreenWnd, 0,0,0,0, SWP_NOMOVE|SWP_NOSIZE);.

    Sonst weiß ich auch nicht 🤡



  • Aus

    STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | 
                                                  WS_SYSMENU
    

    wurde mit WS_POPUP in einer Fullscreenanwendung keine Dialogbox erstellt.

    In Fensteranwendungen schon....

    Ich hab es dann durch WS_CHILD ersetzt,weil ich mir dachte ,dass ein Tochterfenster drübergezeichnet wird.

    Dies hat auch geklappt,nur ist dann das Programm festgefroren.

    Jetzt hab ichs ganz weggelassen und es funtkioniert perfekt. 🙂

    STYLE DS_MODALFRAME | WS_VISIBLE | WS_CAPTION | 
                                                  WS_SYSMENU
    


  • Ist ja abgefahren! Hätte nie gedacht, dass das funktionieren könnte 😮

    Nur gut, dass uns Mutter Natur ne TryAndError-Methode implementiert hat 😃


Anmelden zum Antworten