A
CEdit* pEdit = (CEdit*) GetDlgItem(IDC_EDIT1);
Wie von mir bereits gesagt, casten macht man dann, wenn man schlechtes Design hat oder es wirklich nicht anders geht. Ich bin der Meinung, das du hier etwas machst, was nicht nötig ist. Warum willst du dieses Element haben? Weil du es außerhalb von deinem Dialog benutzen bzw. lesen willst, richtig?
Dafür solltest du dir eine Getter Methode in deinem Dialog bauen, bei dem du auch nicht mehr casten muß:
class CMyDialog : public CDialog
{
private:
CEdit m_ctlMyEdit; // IDC_EDIT1
public:
const CEdit& GetMyEdit()
{
return m_ctlMyEdit;
}
};
Wenn sich dein CEdit irgendwann mal z.B. zu einem... sagen wir mal CButton ändert, wird dir der Compiler Fehlermeldungen ausspucken, für alle Codestellen die GetMyEdit() benutzen. Und dann kannst du reagieren. Mit deiner cast-Vorgehensweise wird dir der Compiler keine einzige Meldung ausspucken, zur Laufzeit würde es aber ein cast Exception geben, die im schlimmsten Fall nur dann auftritt, wenn man eine bestimmte Programmfunktion aufruft.