Zweites Dialogfeld



  • Hi,
    ich beschäftige mich erst seit kurzem mit der Windows API. Ich hab schon einige Tutorilas durchgemacht und weiß jetzt auch wie man MessageBoxen erstellt, Buttons, Fortschrittsbalken, Text, und und und in die Anwendung einfügt. Nur wollte ich jetzt in eine Anwendung ein zweites Dialogfeld einbauen: Man drückt auf einen Button und dann erscheint einfach ein neues Dialogfeld.

    Eigentlich kann das ja nicht so schwer sein, aber ich bekomms einfach nicht hin. Hab auch schon bei Google gesucht, aber nichts richtig brauchbares gefunden.

    Wäre echt nett, wenn ihr mir helfen könntet,

    Mfg Serubabbel



  • Einfach mit CreateDialog bzw. DialogBox aufrufen 😉



  • Irgendwie glaube ich bin ich echt manchmal zu doof für diese Welt...
    Ich bekomms einfach nicht hin 😞 Hier mal mein Code

    Ganz oben

    #include <windows.h>
    #include <commctrl.h>
    
    #include "resource.h" 
    
    LRESULT CALLBACK WindProc (HWND, UINT, WPARAM, LPARAM) ;
    BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
    
    HINSTANCE hInstance;
    HDC hdc;
    static TCHAR szDlgName[] = TEXT("DIALOG");
    

    Dann kommt ganz normal die WinMain Funktion

    Alles darunter:

    void Init (HWND hwnd)
    {
    }
    
    BOOL CALLBACK DlgProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	switch(message)
        {
            case WM_INITDIALOG:
    
            return TRUE;
            case WM_COMMAND:
                switch(LOWORD(wParam))
                {
                    case IDOK:
                        EndDialog(hwnd, IDOK);
                    break;
                    case IDCANCEL:
                        EndDialog(hwnd, IDCANCEL);
                    break;
                }
            break;
            default:
                return FALSE;
        }
        return TRUE;
    }
    
    LRESULT CALLBACK WindProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        switch (message)
        {
            case WM_CREATE:
    	    break;
    
    	case WM_DESTROY:
    	    PostQuitMessage(0);
    	    break;
    
            case WM_COMMAND:
            {
                switch( LOWORD( wParam ) )
                {
                    case IDC_INIT:
                    {
                        Init(hwnd);					
                    }
                    break;
    				case IDC_GO:
    					CreateDialog(hInstance, szDlgName, hwnd, DlgProc);
    					break;
                 }
            }
            return 0 ;
        }
        return DefWindowProc (hwnd, message, wParam, lParam) ;
    }
    

    Hoffe ihr könnt mir helfen....

    Mfg Serubabbel




Log in to reply