Hi Leuts, wenn ich eine globale Funktion schreibe in der ich folgenden Aufruf mache: CListBox *p; p = (CListBox*) GetDlgItem(n); krieg ich folgenden Fehler: Global.cpp(45) : error C2660: 'GetDlgItem' : Funktion akzeptiert keine 1 Parameter Das kann aber doch irgendwie gar nicht sein, denn es gibt zwei Versionen von GetDlgItem, wobei die eine laut MSDN nur den Integerwert des Items benötigt. Wenn ich den Funktzionsaufruf in einer Dialogklasse mache, dann klappt das. Ich will die Funktion aber öfters nutzen, rufe sie also von verschiedenen Dialogklassen auf und übergeben dabei jeweils den Wert des Controls. Wieso meckert der Compiler ? Greets Karlheinz
Ich kenne nur die eine Variante, die offenbar zwei Parameter verlangt: http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/dialogboxfunctions/getdlgitem.asp Dass dein Funktionsaufruf innerhalb der Dialogklasse funktioniert, deutet stark darauf hin, dass "dein" GetDlgItem eben keine globale Funktion ist. Das heißt, ohne ein Objekt der Dialogklasse macht GetDlgItem wenig Sinn, daher beschwert sich der Compiler. btw, wieso benutzt du C-Casts, wo du doch C++ programmierst? Zum einen sind Casts in C++ nur in Ausnahmefällen nötig, zum anderen benutzt man wenn dann reinterpret_cast<>: CListBox* p = reinterpret_cast<CListBox*>(DialogKlassenInstanz->GetDlgItem(n));
GetDlgItem mit einem Argument ist eine Memberfunktion von CWnd. In einer Funktion, die nicht Memberfunktion einer von CWnd abgeleiteten Klasse ist, kann diese Funktion folglich nicht aufgerufen werden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.