Brauche ein CWnd meiner Ansicht
-
Hallo.
In meinem MFC-Programm gibt es ein Dialogfenster.
In der OnInitDialog des Dialogfensters steht folgendes.CWnd* pWnd = GetDlgItem( IDC_STATIC_PLACEHOLDER );
CRect rcCtrl;
pWnd->GetClientRect( &rcCtrl );
pWnd->ClientToScreen( &rcCtrl );
... u.s.w.Ich will dies nun in eine Ansicht (in die MyView) eines anderen Programms einfügen.
Gibt es eine Möglichkeit ein CWnd* pWnd = ... meiner Ansicht zu bekommen. In meiner
Anscht gibt es kein "IDC_STATIC_PLACEHOLDER" so das das nicht funktioniert
Ich bräuchte etwas wie z.B.CWnd* pWnd = GetWnd(); oder so. Kann leider nicht s passendes finden.
hal_ibm
-
Hi,
Jede Fensterklasse hat eine Memberfunktion mit dem Namen "GetSafeHwnd()", mit dieser Funktion kann das API-Fenster-Handle HWND des Fensters ermittelt werden.
danach kannst Du folgendes machen:CWnd wnd; wnd.Attach(hWndWindow);Dann hast du ein CWnd-Objekt des Fensters. Ich hoffe ich konnte dir damit weiterhelfen.
-
Hallo RR.
Bin ein neuling in C++ und kann leider mit deiner Antwort nicht viel anfangen.
Habe folgendes versucht aber bekomme nur Fehlermeldungen.HWND hWndWindow = GetSafeHwnd();
CWnd pWnd;
pWnd.Attach(hWndWindow); diese Zeile macht problemeFehlermeldung: Debug assertion Faild in Wincore.cpp
Wenn ich die Zeile rausnehme kommt keine Fehlermeldung.
hal_ibm