Announcement

Collapse
No announcement yet.

Titel von CPropertyPages zur Laufzeit ändern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Titel von CPropertyPages zur Laufzeit ändern

    Ich möchte zur Laufzeit des Programs den Titel von Propertypages ändern können.<br>
    Es gibt die Struktur <b>PROPSHEETPAGE</b>, aber wie kann ich darauf zugreifen und ändern!

    Vielen Dank

    Arwed

  • #2
    Über das Datenmember PROPSHEETPAGE m_psp der Klasse CPropertyPage kann man den Title setzen.

    Die Methode kann in der Form, wie ich sie Dir als Beispiel anhänge, nur direkt nach dem Erzeugen des PropertyPage-Objektes genutzt werden. Umsetzen während das Objekt schon visualisiert wird, ist so nicht drin. Falls Du das brauchst, findest Du das bestimmt selber raus ;-)

    Ich habe, da ich noch ein paar andere Dinge in den Property Pages brauche, eine Klasse mit dem Namen CCWPropertyPage von PropertyPage abgeleitet. Diese besitzt ein Member CString m_strTitle, in der ich den Text für das Objekt vorhalte.

    Die aufgerufenen Methode GetTitleID() ist eine abstrakte Methode, die dann in den eigentlichen PropertyPage-Klassen überladen wird, die wiederum die Resource-ID des Seitentitels zurückgibt.<p>
    void CCWPropertyPage::SetTitle( bool bWithAppName )<br>
    {<br>
    // if in wizard mode add the app name to the title<br>
    if( bWithAppName )<br>
    {<br>
    m_strTitle = AfxGetApp()->m_pszAppName;<br>
    m_strTitle += " - ";<br>
    }<br>
    CString tmp;<br>
    tmp.LoadString( GetTitleID() );<br>
    <br>
    m_strTitle += tmp;<br>
    <br>
    m_psp.pszTitle = (const char*) m_strTitle;<br>
    m_psp.dwFlags |= PSP_USETITLE;<br>
    }<p>
    Ich hoffe, dass hilft Dir weiter.<br>
    Thoma

    Comment

    Working...
    X