Problem mit Dialogbox



  • hallo zusammen.

    ich habe mir in einer *.rc datei ein menüund eine dialogbox zusammen gestellt. das
    menü funktioniert auch so weit. nun habe ich da im menü Hilfe->Info über... wenn man darauf klickt, soll die Dialogbox aufgehen. Geht sie aber leider nicht.

    Ich weiß einfach nicht warum. das menü geht ja.
    wäre toll, wenn mir da jemand helfen könnte.

    hier mal meine resource.h

    #define IDM_FILE_NEW 40001
    #define IDM_FILE_OPEN 40002
    #define IDM_FILE_SAVE 40003
    #define IDM_FILE_SAVEAS 40004
    #define IDM_APP_EXIT 40005
    #define IDM_EDIT_UNDO 40006
    #define IDM_EDIT_CUT 40007
    #define IDM_EDIT_COPY 40008
    #define IDM_EDIT_PASTE 40009
    #define IDM_EDIT_CLEAR 40010
    #define IDM_BKGND_WHITE 40011
    #define IDM_BKGND_LTGRAY 40012
    #define IDM_BKGND_GRAY 40013
    #define IDM_BKGND_DKGRAY 40014
    #define IDM_BKGND_BLACK 40015
    #define IDM_TIMER_START 40016
    #define IDM_TIMER_STOP 40017
    #define IDM_APP_HELP 40018
    #define IDM_APP_ABOUT 40019
    #define IDC_STATIC -1

    hier mal die *.rc

    //Microsoft Developer Studio generated resource script.
    //

    #define APSTUDIO_READONLY_SYMBOLS
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 2 resource.
    //
    #include "resource.h"
    #include "afxres.h"

    /////////////////////////////////////////////////////////////////////////////
    #undef APSTUDIO_READONLY_SYMBOLS

    /////////////////////////////////////////////////////////////////////////////
    // Deutsch (Deutschland) resources

    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
    #ifdef _WIN32
    LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
    #pragma code_page(1252)
    #endif //_WIN32

    /////////////////////////////////////////////////////////////////////////////
    //
    // Menu
    //

    MENUNETZPLAN MENU DISCARDABLE
    BEGIN
    POPUP "&Datei"
    BEGIN
    MENUITEM "&NEU", IDM_FILE_NEW
    MENUITEM "&Öffnen", IDM_FILE_OPEN
    MENUITEM "&Speichern", IDM_FILE_SAVE
    MENUITEM "Speichern &unter", IDM_FILE_SAVEAS
    MENUITEM SEPARATOR
    MENUITEM "B&eenden", IDM_APP_EXIT
    END
    POPUP "&Bearbeiten"
    BEGIN
    MENUITEM "&Widerrufen", IDM_EDIT_UNDO
    MENUITEM SEPARATOR
    MENUITEM "A&usschneiden", IDM_EDIT_CUT
    MENUITEM "&Kopieren", IDM_EDIT_COPY
    MENUITEM "E&infügen", IDM_EDIT_PASTE
    MENUITEM "&Löschen", IDM_EDIT_CLEAR
    END
    POPUP "&Hintergrund"
    BEGIN
    MENUITEM "&Weiß", IDM_BKGND_WHITE, CHECKED
    MENUITEM "&Hellgrau", IDM_BKGND_LTGRAY
    MENUITEM "&Grau", IDM_BKGND_GRAY
    MENUITEM "&Dunkelgrau", IDM_BKGND_DKGRAY
    MENUITEM "&Schwarz", IDM_BKGND_BLACK
    END
    POPUP "&Timer"
    BEGIN
    MENUITEM "&Start", IDM_TIMER_START
    MENUITEM "S&top", IDM_TIMER_STOP, GRAYED
    END
    POPUP "&Hilfe"
    BEGIN
    MENUITEM "&Hilfe...", IDM_APP_HELP
    MENUITEM "Info über Netzplan...", IDM_APP_ABOUT
    END
    END

    #ifdef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // TEXTINCLUDE
    //

    1 TEXTINCLUDE DISCARDABLE
    BEGIN
    "resource.h\0"
    END

    2 TEXTINCLUDE DISCARDABLE
    BEGIN
    "#include ""resource.h""\r\n"
    "#include ""afxres.h""\r\n"
    "\0"
    END

    3 TEXTINCLUDE DISCARDABLE
    BEGIN
    "\r\n"
    "\0"
    END

    #endif // APSTUDIO_INVOKED

    /////////////////////////////////////////////////////////////////////////////
    //
    // Dialog
    //

    ABOUTBOX DIALOG DISCARDABLE 0, 0, 330, 205
    STYLE WS_CHILD
    FONT 8, "MS Sans Serif"
    BEGIN
    PUSHBUTTON "OK",IDOK,60,171,65,15
    PUSHBUTTON "Abbrechen",IDCANCEL,173,172,90,18
    LTEXT "Info über Version 1.0",IDC_STATIC,51,39,244,15
    LTEXT "(c) by Mustermann",IDC_STATIC,34,112,150,20
    END

    /////////////////////////////////////////////////////////////////////////////
    //
    // DESIGNINFO
    //

    #ifdef APSTUDIO_INVOKED
    GUIDELINES DESIGNINFO DISCARDABLE
    BEGIN
    AboutBox, DIALOG
    BEGIN
    BOTTOMMARGIN, 16
    END
    END
    #endif // APSTUDIO_INVOKED

    #endif // Deutsch (Deutschland) resources
    /////////////////////////////////////////////////////////////////////////////

    #ifndef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 3 resource.
    //

    /////////////////////////////////////////////////////////////////////////////
    #endif // not APSTUDIO_INVOKED

    un hier mal der code aus der *.cpp

    case IDM_APP_HELP:
    MessageBox(hWnd, TEXT("Hilfestellung noch nicht implementiert!"), "Hilfe", MB_ICONEXCLAMATION | MB_OK);
    return 0;

    case IDM_APP_\1:
    DialogBox(hInstance, TEXT("About"),hWnd, AboutDlgProc);
    break;

    BOOL CALLBACK AboutDlgProc(HWND hDlg, UINT message,
    WPARAM wParam, LPARAM lParam)
    {
    switch(message)
    {
    case WM_INITDIALOG:
    return TRUE;

    case WM_COMMAND:
    switch(LOWORD(wParam))
    {
    case IDOK:
    case IDCANCEL:
    EndDialog(hDlg, 0);
    return TRUE;
    }
    break;
    }
    return FALSE;
    }



  • Versuche es mal mit folgendem Code:

    DialogBox(hInstance, MAKEINTRESOURCE(ABOUTBOX), hWnd, AboutDlgProc);
    

    Du Header, in dem du ABOUTBOX definiert hast, musst du dann in dieser .cpp-Datei auch noch einbinden - hab es komischerweise in deiner resource.h nicht gefunden 😕



  • was muss ich denn dann noch in meine headerdatei eintragen? das kann doch in die resource.h dann.



  • Mich wundert, dass das bisher so ohne Probleme geschluckt wird...
    Du musst wohl einfach dort noch "#define ABOUTBOX 40020" o.ä. einfügen - bin mir gerade aber auch nicht ganz sicher. Normalerweise hätte die IDE das schon machen sollen 🙄



  • so, habs jetzt,musste TEXT("ABOUTBOX") schreiben. hatte nur irgenwie verschiede Namen für die Dialogbox genommen



  • So,

    das die Dialogbox geht ja nun auf, nur leiser funktioniert dann irgendwie gar nichts mehr. es lassen sich nirgends Button anklicken und die Dialogbox kann man auch nicht mehr schließen. ich uss die anwendung über den taskmanager killen.

    irgendwie steige ich bei dem kram noch nicht wirklich durch.

    ch dachte, dass das die dialogbox wie eine messagebox aufgeht, man ok klickt und dann ist sie wieder weg.



  • Wie sieht denn die dlgfunc der Aboutbox aus?


Anmelden zum Antworten