re zu meiner frage wegen den Nachrichten
-
würde das dann so aussehen?
BEGIN_MESSAGE_MAP ON_MESSAGE(WM_MYMSG, OnMyMsgFunction) END_MESSAGE_MAP()klappt nicht bekomme 40 syntax fehler mmhmm ich schreibe mal was alles gemacht habe.
MyDlg.h (Codeauszug!) public: #define WM_TEST WM_USER+5 protected: // Generated message map functions //{{AFX_MSG(CTCOPYDlg) afx_msg LRESULT OnTest(WPARAM wParam,LPARAM lParam); //}}AFX_MSG DECLARE_MESSAGE_MAP() MyDlg.cpp BEGIN_MESSAGE_MAP ON_MESSAGE(WM_TEST, OnTest) END_MESSAGE_MAP() LRESULT OnTest(WPARAM wParam, lParam) // methode zur bahndlung der MSG { // do something return 0L; }so rufe ich die MSG auf
zum test in der OnInitDlg() PostMessage(WM_TEST, IDCANCEL); // das IDCANCEL hab ich aus nem buch habe // ich als test mit bernommender debugger meldet nen syntax fehler bei PostMessage....
-
Hi
in mydlg.h ganz am Anfang (unter den #includes aber vor class) definierst du die Konstante für die Nachricht:
#define WM_TEST WM_USER+5Die PostMessage Methoder der CWnd Klasse ist folgendermaßen deklariert:
BOOL PostMessage( UINT message, WPARAM wParam = 0, LPARAM lParam = 0 );Nun kannst du also zum Test folgendes schreiben (in mydlg.cpp)
PostMessage(WM_TEST); // gleich wie PostMessage(WM_USER+5);Das dürfte eigendlich keine Compilerfehler verursachen.
Wenn doch, poste doch mal welche.Grüße Rapha
-
TCOPYDlg.obj : error LNK2001: unresolved external symbol "protected: long __thiscall CTCOPYDlg::OnTest(unsigned int,long)" (?OnTest@CTCOPYDlg@@IAEJIJ@Z)
mmm keine ahnung :-\
-
wenn
ON_MESSAGE(WM_TEST, OnTest)
dann
LRESULT DEINEKLASSE::OnTest(WPARAM wParam, lParam) // methode zur bahndlung der MSG
{
// do something
return 0L;
}abgesehn davon benutzt ich für sowas glaub oncommand anstatt on_message aber bin mir grad ned 100pro sicher
-
MyDlg.h
// nach den includes vor der Class aber #define WM_TEST WMUSER+5 // innerhalb meiner dlg class protected: // Generated message map functions //{{AFX_MSG(CTCOPYDlg) ..... //}}AFX_MSG afx_msg LRESULT OnTest(WPARAM wParam, LPARAM lParam); DECLARE_MESSAGE_MAP()MyDlg.cpp
BEGIN_MESSAGE_MAP(CTCOPYDlg, CDialog) ON_MESSAGE(WM_TEST, OnTest) //{{AFX_MSG_MAP(CTCOPYDlg) .... //}}AFX_MSG_MAP END_MESSAGE_MAP() LRESULT OnTest(WPARAM wParam, LPARAM lParam) { // do something return 0L; }zum schicken einer nachricht tue ich inder OnInitDlg() das schreiben
[/cpp]
PostMessage(WM_TEST);
[cpp]Bekomme beim kompilieren diese Meldung und die zeigt im quellcode auf diese Zeile:
TCOPYDlg.obj : error LNK2001: unresolved external symbol "protected: long __thiscall CTCOPYDlg::OnTest(unsigned int,long)" (?OnTest@CTCOPYDlg@@IAEJIJ@Z)1 unresolved external
Wenn ich den Part mit "ON_MESSAGE(WM_TEST, OnTest)" auskommentiere beheb ich die Fehlermeldung...
mhmmm was mache ich bloss falsch

-
der fehler war ich habe den klassennamen vergessen vor meiner funtkion zu schreiben
-
Ah, hast es selbst bemerkt.
Wollt ich grad sagen