CPropertyPage den Fenstertitel ändern

Hulewulle

Mitglied
Guten Morgen

Ich suche schon eine Weile habe aber noch nix gefunden was mir helfen würde.
Ich habe mit MFC Visual Studio 2005 c++ einen Dialog erstellt im Editor. Dann habe ich Klasse hinzufügen gemacht und als Basisklasse CPropertyPage angegeben und nun folgende Klasse:

Code:
class CPageCtrlReg : public CPropertyPage
{
	DECLARE_DYNAMIC(CPageCtrlReg)

public:
	CPageCtrlReg();
	virtual ~CPageCtrlReg();

// Dialogfelddaten
	enum { IDD = IDD_PROPPAGE_CONTROLREG };

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV-Unterstützung

	DECLARE_MESSAGE_MAP()

public:
	void setTitel(CString cstrTitel);					// Ändert den Fenstertitel
};

Die Funktion setTitel sieht so aus:
Code:
void CPageCtrlReg::setTitel(CString cstrTitel)
{
	SetWindowText(cstrTitel);
}

Im eigentlichen Programm erstelle ich ein Objekt dieser Klasse
Code:
newCtrlRegPage = new CPageCtrlReg;

und rufe dann die setTitel-Methode auf
Code:
newCtrlRegPage->setTitel(cstrTitel);

zur Lufzeit kommt ein Fehler der mich dahin bringt
Code:
void CWnd::SetWindowText(LPCTSTR lpszString)
{
	ENSURE(this);
	ENSURE(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));

	if (m_pCtrlSite == NULL)
		::SetWindowText(m_hWnd, lpszString);
	else
		m_pCtrlSite->SetWindowText(lpszString);
}

In der Makierten Zeile mekert er.

Meine Frage ist nun was mache ich da falsch und wie würde man es richtig machen?

SetWindowText() habe ich auch schon im Konstruktor und einer OnCreate() versucht aufzurufen. jedesmal ohne erfolg :-(

Wenn Ihr mir also einen Tip geben könntet wo und wie ich zur Laufzeit ein Objekt dieser Klasse erstelle mit unterschiedlichen Titel wäre ich echt froh.

MfG

Hulewulle
 
Versuch mal den Windowtext erst nach dem erstellen zu setzten .
Du kannst eine Variable erstellen in deinem Dialog ( mywndText ) und in der OnInitDialog
Funktion this->SetWindowText(mywndText) setzten.
Er mekert da das Fenster noch nicht existiert.
 
Hallo,

versuch mal die Eigenschaften der m_psp- Struktur deiner PropertyPage
zu setzen. Bei mir hat's funktioniert.

m_psp.dwFlags |= PSP_USETITLE;
m_psp.pszTitle = "Dein neuer Page-Name";

Gruß
titanic
 
Zurück