Wie kann ich SendMessage einen Parameter mitgeben? (Zeiger oder CString)
-
Hallo!
Ich habe es schon mit casten versucht, aber das funktioniert nicht.
Alternativ hilft mir auch die Antwort, welche Funktion aufgerufen wird, wenn ein Document aktiv wird. OnInitialUpdate beim View passt jedenfalls nicht, die wird zu früh aufgerufen. OnShowWindow reagierte überhaupt nicht.

-
Servus,
aufbasse:
void CDeinDlg::OnRubbelDieKatz { LPCSTR strKatze = "RubbeldieKatz!!!"; PostMessage(MESSAGE_TEST, (WPARAM)strKatze, 0); } BOOL CDeinDlg::PreTranslateMessage(MSG* pMsg) { if (pMsg->message == MESSAGE_TEST) { LPCSTR strKatze = (LPCSTR)pMsg->wParam; CString strNagelAnDieWand = strKatze; } return CDialog::PreTranslateMessage(pMsg); }Ich weiss nicht ob das die feine Art ist. Aber bisher hatte ich das immer so gemacht.

*winke*
Hellsgore
-
Danke!!! Fühl dich gedrückt!
Ich hab es zwar irgendwie ganz anders, aber es geht auch.
AfxGetMainWnd()->SendMessage(WM_UPDATE_TEXTE, (WPARAM)GetDocument());Und im MainFrame:
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) //{{AFX_MSG_MAP(CMainFrame) // ... //}}AFX_MSG_MAP ON_MESSAGE(WM_UPDATE_TEXTE, OnUpdateTexte) END_MESSAGE_MAP() LRESULT CMainFrame::OnUpdateTexte(WPARAM wParam, LPARAM pParam) { CBasisDoc* pDoc = (CBasisDoc*)(wParam); ASSERT(pDoc); if (pDoc) { // Und so weiter :) } return 0; }
-
LPCSTR strKatze = "RubbeldieKatz!!!"; PostMessage(MESSAGE_TEST, (WPARAM)strKatze, 0);Verschicke nie Zeiger mit PostMessage. Das ist tödlich. Nimm SendMessage.
-
Warum?
Er kommt direkt zurück und wartet nicht bis es abgearbeitet ist. Aber warum soll man das nicht?

*winke*
Hellsgore
-
Na weil der Zeiger dann, wenn du Pech hast, schon ungültig ist, wenn die Nachricht bearbeitet wird.
-
Ich glaube ich könnte sogar "wenn du Pech hast" rausnehmen. Er wird immer ungültig sein, wenn das Objekt nicht mit new erzeugt wurde.
-
Ok, jetzt noch ein drittes Post

Bei Stringliteralen wird es doch kein Problem geben.
Aber bei anderen Zeigern schon.
-
Das ist Lötzinn: :p
> ...Er wird immer ungültig sein, wenn das Objekt nicht mit new erzeugt wurde. Daran habe ich nicht gedacht: ;) ~~~~~~~+ schrieb: > Na weil der Zeiger dann, wenn du Pech hast, schon ungültig ist, wenn die Nachricht bearbeitet wird. \*winke\* Hellsgore