011
22.06.2005, 09:32 Uhr
Tommix
|
Zitat von Wiesenlieger: |
hab das ganze jetzt mal in einer einfachen Dialog-Anwendung probiert -> da gehts, nur zur MessageBox sagt der Compiler: "'CWnd::MessageBoxA' : Unzulaessiger Aufruf einer nichtstatischen Member-Funktion"
jetzt bin ich ganz verwirrt, wieso geht das nicht in einer MDI-Anwendung?
|
Hallo, das liegt nun daran, daß Du jetzt die Member-Funktion MessageBox von CWnd aufrufst, aus der Doc hingegen die Windows-API-Funktion (CDocument ist im Gegensatz zu CDialog nicht von CWnd abgeleitet). In einem Dialog machst Du entweder:
C++: |
UINT CMyDialog::ThreadFunc(LPVOID pParam) { ::MessageBox(NULL, "thread", "", MB_OK);
return 0; }
|
oder - und das zeigt auch den Sinn des Parameters:
C++: |
UINT CMyDialog::ThreadFunc(LPVOID pParam) { CMyDialog* pDlg = reinterpret_cast<CMyDialog*>(pParam); pDlg->MessageBox("thread", "", MB_OK);
return 0; }
|
Nach dem gleichen Prinzip kannst Du auf die ganze Instanz zugreifen.
Gruß, Tommix |