Re: Best practise: Kommunikation modeless Dialog und View
- From: "Martin Richter [MVP]" <martin.richter@xxxxxxxx>
- Date: Fri, 18 Sep 2009 08:17:27 +0200
Hallo Peter!
1.) Lediglich Speicherung der Dialogdaten im Dialog-Objekt und der Code für die "Aktion" im View?
Würde ich so sehen.
2.) Verarbeitung der Results direkt im Dialog? Dann muss ich Funktionen des Views aufrufen, z.B.:
a) dynamic_cast<CMyView*>(GetParent())->Navigate(m_strUrl);
Vorsicht! GetParent ist eben nicht der View. Der ist en Child Window und Child-Windows können kein Parent sein. Der echte Parent ist das Main Wnd! Schau Dir den Zeiger im Debugger an!
Mit DYNAMIC_CAST oder STATIC_CAST hättest Du einen ASSERT bekommen! Ich bervorzuge in diesem Fall immer die MFC Macros vor den C++ Varianten!
b) GetParent()->SendMessage(WM_USER + 101, 0, m_strUrl);
Gute Methode!
c) ...
c. Wie wäre es mit einem Funktions-Interface, dass dem modalen Dialog übergeben wird und das als zusätzlich im CView mit abgeleitet wird.
d. Wie wäre es mit Funktionszeigern?
e. Delegator Konzept
Variante 2.a. habe ich gerade versucht, das führt zu unreproduzierbaren Abstürzen und assertion fails...
s.o.
--
Martin Richter [MVP] WWJD http://blog.m-ri.de
"A well-written program is its own heaven; a poorly written
program is its own hell!" The Tao of Programming
FAQ: http://www.mpdvc.de Samples: http://www.codeproject.com
.
- Prev by Date: Re: Sortierperformance bei ListControl
- Next by Date: Re: Text markieren
- Previous by thread: Text markieren
- Next by thread: Unbekannte Ausnahme beim Beenden des Progs.
- Index(es):
Relevant Pages
|