000
10.06.2005, 14:04 Uhr
raiser999
|
Hallo
folgende Situation ich habe einen Dialog 1 der ruft dialog 2 auf und dieser dialog 3 welcher dann einen Wizzard aufruft.
Jetzt meine Frage wie kann ich einen String zwischen Dialog 3 zu dialog 1 übergeben. Mit WM_COPYDATA kann ich nur von Dialog 2 zu dialog 1. Aber nicht von Dialog 3 zu 1
Dialog 1
C++: |
... BEGIN_MESSAGE_MAP(Dialog1, CDialog) //{{AFX_MSG_MAP(CLwKonfigDlg) ON_WM_COPYDATA() //}}AFX_MSG_MAP END_MESSAGE_MAP() .. BOOL Dialog1::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct) { MyStruct *tcsBuff=(MyStruct*)(pCopyDataStruct->lpData); CString a=tcsBuff->szData;
return CDialog::OnCopyData(pWnd, pCopyDataStruct); }
|
Dialog2
C++: |
m_RemoteWindow=::FindWindow(NULL,_T("Dialog1"));
if(::IsWindow(m_RemoteWindow)) MessageBox(_T("Remote Window Handle Found"));
CString strData="Wizzard Erfolgreich"; COPYDATASTRUCT MyCDS;
int nLen=strData.GetLength(); MyStruct l_var; lstrcpy(l_var.szData,strData); l_var.nNum=5;
MyCDS.cbData=sizeof(l_var); MyCDS.dwData=1; MyCDS.lpData=(LPVOID)&l_var;;
::SendMessage(m_RemoteWindow,WM_COPYDATA,(WPARAM)GetSafeHwnd(), (LPARAM)&MyCDS);
|
Dieser Post wurde am 10.06.2005 um 14:07 Uhr von raiser999 editiert. |