Textfeld von CDialog ändern

chuqa

Grünschnabel
Hallo allerseits,

ich habe in meinem Programm ein Dialog-Fenster, das 3 Checkboxes, ein Textfeld und zwei Buttons enthält. Nun möchte ich, dass sich beim Aktivieren einer Checkbox der Inhalt der Textfeldes ändert. Wie und wo tue ich das ("DoDataExchange"?)?.

gruß chuqa
 
Ok hab eine Lösung gefunden. Über einen Handler auf die Radiobuttons und einem Hilfsobjekt, das mit der Textkomponente verknüpft wird. so sieht es z.b. aus:

Code:
void CcreateFcTypesDlg::OnBnClickedRadio1()
{
	setHelperText(IDS_HELP_GENONLINE);
}

void CcreateFcTypesDlg::setHelperText(int textId){
	CStatic *phelper = new CStatic();
	phelper->Attach(*GetDlgItem(IDC_STATIC));
	CString theText;
	theText.LoadString(textId);
	phelper->SetWindowText(theText);
	phelper->Detach();
}

gruß chuqa
 
Das wäre auch möglich:
C++:
CString theText;
theText.LoadString(textId);
SetDlgItemText(IDC_STATIC, theText);
In so einem Fall solltest du auch die ID des Textfeldes ändern, weil "IDC_STATIC" per default an alle Textfelder, Rahmen usw. vergeben wird. Falls du mal mehrere solche Controls auf dem Dialog plazierst, wäre die Zuordnung nicht mehr eindeutig.

Gruß
MCoder
 

Neue Beiträge

Zurück