Dialog ohne Hintergrund



  • Hallo,

    es hat etwas mit der Eigenschaft "Control" zu tun. Wenn ich die aktiviere, wird das Fenster ordentlich dargestellt, allerding Ohne Ramne, Kopfleiste und Systemmenü.

    Somit bin ich schonmal auf dem richtigen Weg..



  • ..aber leider noch nicht am Ziel. Hab noch einiges ausprobiert, aber der Dialog bleibt Rahmenlos....



  • Na wenne wills schick mal den Code (ganzes Projekt!) cpp-coding@arcor.de

    Kann aber nix verprechen :p



  • Hallo,

    danke fürs Angebot, CodeFinder, kann ich nur leider nicht machen, weil ich sonst Ärger bekomme..

    Ein weiteres Phänomen ist, dass ich wenn ich aus dem Dialog heraus ein PopupWindow öffe, der Eingabefocus nicht darauf übergeht, es läßt sich auch nicht aktivieren, somit ist das Programm nicht mehr bedienbar, muss es über den Taskman schließen.

    ich finde die Ursache ienfach nicht 😡



  • Genervter schrieb:

    danke fürs Angebot, CodeFinder, kann ich nur leider nicht machen, weil ich sonst Ärger bekomme..

    Jo, np... 👍

    Genervter schrieb:

    Ein weiteres Phänomen ist, dass ich wenn ich aus dem Dialog heraus ein PopupWindow öffe, der Eingabefocus nicht darauf übergeht, es läßt sich auch nicht aktivieren, somit ist das Programm nicht mehr bedienbar, muss es über den Taskman schließen.

    ich finde die Ursache ienfach nicht 😡

    Also ich könnt mir vorstellen, das es was 'einfaches' ist, aber so kann ich dir leider nit helfen -sorry-
    Warum bekommst du denn Ärger wenne mit deinen Code schickst ? 😮



  • Wie sieht denn deine Nachrichtenschlefe zu CreateDialog aus? CreateDialog braucht nämlich eine.



  • Hallo,

    du meinst bestimmt die Callback-Funktion:

    iADDSDLG = DialogBox(hInst,MAKEINTRESOURCE(IDD_ADDSERVER),hWndMAIN, ADDS_DLG);
    
    BOOL CALLBACK ADDS_DLG (HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) 
    {
        switch (message)
        {
        case WM_INITDIALOG:
    	return DialogInit(hwndDlg,IDD_ADDSERVER,wParam);
            case WM_COMMAND:
    	switch (LOWORD (wParam))
            {
    		case IDOK:
    			AddServer(hwndDlg,IDD_ADDSERVER);
                            EndDialog(hwndDlg,2);
    			return TRUE;
    		case IDCANCEL:
    			EndDialog(hwndDlg,1);
    			return TRUE;
    		default: return TRUE;
    		}
    	default:return DefWindowProc(hwnd, message, wParam, lParam);
    	}
    	return TRUE;
    }
    


  • LOL!

    Alle bearbeiteten Nachtichten werden mit return (TRUE); signalisiert alle anderen mit return (FALSE); Du darfst DefWindowProc nicht für Dialoge aufrufen!

    ➡ Die Bearbeitung von nicht bearbeiteten Nachrichten übernimmt der (s.g.) DialogManager!

    Mal BTW: Das return TRUE; am Ende wird nie erreicht

    PS: Der Prototyp einer Dialog-Prozedur ist:

    INT_PTR CALLBACK DlgProc(HWND,UINT,LPARAM,WPARAM);
    

    EDIT: Ob das dein Problem lößt, weiß ich nicht, ist aber sehr warscheinlich ...is mir nur so auf Anhieb aufgefallen... 😉



  • Genervter schrieb:

    Hallo,

    du meinst bestimmt die Callback-Funktion:

    Nein, ich meinte schon die Nachrichtenschleife. Aber wie ich sehe, benutzt du, entgegen deiner ursprünglichen Aussage, doch DialogBox und nicht CreateDialog.

    Aber auch wenn du ihr die flachen Informationen geliefert hast, scheinst du ja doch den richtigen Code gepostet zu haben.



  • Hallo,

    stimmt, keine DefWindowProc() erforderlich 🤡
    HAt aber das PRoblem nicht gelöst (Der Dialog an sich funktioniert ja, nur ohne Rahmen), immernoch kein Rahmen in Sicht.


Anmelden zum Antworten