Caption im Dialog nicht zeichnen



  • Wie kann ich verhindern das in der Titelleiste eines Dialogs, der Titel gezeichnet wird. Das Fenster soll aber weiterhin den Titel als Text besitzen und ebenfalls soll dieser weiterhin in der TaskBar angezeigt werden.

    Ziel des ganzen ist unter Vista ein Dialog wie der Explorer bzw. die Assistenten. Also der Glasrahmen soll in den Client-Bereich gehen aber der Caption soll an einer anderen Stelle (selbst) gezeichnet werden.



  • Wird in der TaskBar nicht der Applikationstitel angezeigt? Bei mir steht der in der String-Table unter AFX_IDS_APP_TITLE.
    An den kommst Du mit

    CString strTitel("");
    strTitel.LoadString(AFX_IDS_APP_TITLE);
    

    ran.

    Den Dialogtitel kann man sich in OnInitDialog merken und dann neu setzen. Den braucht man nicht neu "zeichnen".

    //merken
    m_strMeineMember=_T("");
    GetWindowText(m_strMeineMember);
    //leer setzen
    SetWindowText(_T(""));
    

    Der Rest ist dann Handarbeit.


  • Mod

    Also mit SetWindowText für das Mainframekommt man nicht weiter.

    Such mal im Netz nach WM_NCPAINT...



  • Tester2 schrieb:

    Wird in der TaskBar nicht der Applikationstitel angezeigt? Bei mir steht der in der String-Table unter AFX_IDS_APP_TITLE.

    Bei einzelnen Dialogen hilft das leider nicht weiter.

    Martin Richter schrieb:

    Also mit SetWindowText für das Mainframekommt man nicht weiter.

    Such mal im Netz nach WM_NCPAINT...

    Das hilft leider auch nicht weiter, da es irgendwie keine weiteren Informationen darüber gibt wie man mit dem DWM von Vista zusammenarbeiten kann. Es ist nirgends erklärt, dokumentiert wie man Dialoge wie IE, Windows Explorer, Systemsteuerung etc. erstellen kann. Nicht einmal ansatzweise.

    Es gibt zwar die Möglichkeit mit DwmSetWindowAttribute in den NC-Bereich zu zeichnen. Jedoch ist dann das "Aero-Theme" des Dialogs nicht verfügbar.



  • Also mit SetWindowText für das Mainframe kommt man nicht weiter

    Und was ist mit:

    AfxGetMainWnd()->SetWindowText(strTitel)
    

    Davon abgesehen hatte er doch geschrieben:

    Wie kann ich verhindern das in der Titelleiste eines Dialogs...

    Beides funktioniert bei mir bestens, aber ich arbeite nicht unter Vista.


  • Mod

    @Tester2: In dem Du SetWIndowText("") setzt wird auch der Titel der Taskbar verändert.
    Er möchte die Titelleiste anders darstellen!

    @HaJo: Es ist doch in der MSDN beschrieben:
    http://msdn.microsoft.com/en-us/library/bb688195(VS.85).aspx
    Was fehlt Dir?
    Ansonsten gibt es zu WM_NCPAINT uach x-Artikel, sofern Du DWM nicht benutzen willst.



  • Martin Richter schrieb:

    @HaJo: Es ist doch in der MSDN beschrieben:
    http://msdn.microsoft.com/en-us/library/bb688195(VS.85).aspx
    Was fehlt Dir?
    Ansonsten gibt es zu WM_NCPAINT uach x-Artikel, sofern Du DWM nicht benutzen willst.

    Danke Martin. Genau danach habe ich verzweifelt gesucht. Das Problem war/ist ja genau der DWM gewesen. Diese/r Artikel/Dokumentation sollte aber vorerst die Fragen klären.


Anmelden zum Antworten