002
15.06.2005, 00:08 Uhr
mmc20
puss in boots
|
natürlich ... mit ner selbst definierten nachricht zB.
C++: |
#define WMU_DAKOMMTEINSTRING WM_USER+1 ... // im Empfänger-dlg muss dann folgendes in die MessageMap (aber ausserhalb des AFX-Blocks ! ON_MESSAGE( WMU_DAKOMMTEINSTRING, DeineFunktion )
// natürlich noch die funktion anlegen void CDeinDlg::DeineFunktion(WPARAM wParam, LPARAM lParam) { CString tmp = CString(wParam); ... }
// der aufruf im sender-dlg ist dann ein "normales" sendmessage // natürlich musst du dir vorher das CWnd des empfängers holen // zb mit GetParent()->SendMessage( WMU_DAKOMMTEINSTRING, (WPARAM)"mein String", 0 ); // eventuell auch GetParentOwner()
|
...oder du fügst einfach per klassen-assi die virtuelle funktion "OnCommand" (im empfänger) hinzu. das sendmessage sieht dann etwas anders aus:
C++: |
GetParent()->SendMessage( WM_COMMAND, WMU_DAKOMMTEINSTRING, (LPARAM)"string" );
// und im empfäger/oncommand : BOOL CDeinDlg::OnCommand(WPARAM wParam, LPARAM lParam) { switch( (UINT)wParam ) { case WMU_DAKOMMTEINSTRING: { // lParam auswerten } break; } return CDialog::OnCommand(wParam, lParam); }
|
ansonsten gehts auch einfacher: dem dialog eine member ( CString m_sText ) verpassen...
C++: |
CMein2terDlg dlg; dlg.m_sText = "Bla Bla"; dlg.DoModal(); // im dialog wird der string verändert... CString res = dlg.m_sText;
|
|