Fenster akualisieren aus while schleife
-
könntest mir da mal ne beispiel geben wie man das macht.
also man legt in der message map ne die message WM_USER an?!
-
Gegenfrage: Was genau willst du in der ListBox erledigen?
-
dient nur zur überprüfung und überwachung, also wenn sich ein neuer client verbunden hat, oder daten empfangen wurden.
-
also wenn du ein Dialogfeld hast,
auserhalb einer Classe bzw. in der StdAfx.h#define WM_BULUBB_MESSAGE (WM_APP + 10001) //Benutzer definierte Nachrichtaus der funktion wo die nachricht gesendet werden soll
SendMessage(WM_BULUBB_MESSAGE, (WPARAM)0 , (LPARAM)0);die Param werte kannst du jetzt noch belegen mit den Nachrichten werten die du weterleiten willst wenn dir pro Param ein Parameter nicht reicht kannst du sie noch mit HI/LOWORD belegen kuck dir dazu MAKEWPARAM & MAKELPARAM in der MSDN an.
in dem dialog wo sie abgefangen werden soll setzt du auserhalb der
//}}AFX_MSG_MAPON_MESSAGE(WM_BULUBB_MESSAGE,OnFunktionBlubMessage)die funktion OnFunktionBlubMessage must du dann noch in der entsprechenden Header des Dialogs deklarieren bzw in der *.cpp auch auflösen und natürlich die beiden Param werte nicht vergessen
void OnFunktionBlubMessage(WPARAM wParam, LPARAM lParam)
das wars
-
also erstmal besten dank.
LowFly schrieb:
in dem dialog wo sie abgefangen werden soll setzt du auserhalb der
//}}AFX_MSG_MAPON_MESSAGE(WM_BULUBB_MESSAGE,OnFunktionBlubMessage)da bekomm ich dann ne fehler! in dem dialog steht dann:
ON_WM_TIMER() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_btnsend, &CEmpfaengerDlg::OnBnClickedbtnsend) ON_MESSAGE(WM_BULUBB_MESSAGE, &CEmpfaengerDlg::OnFunktionBlubMessage)der fehler lautet:
Fehler 1 error C2440: 'static_cast': 'void (__thiscall CEmpfaengerDlg::* )(WPARAM,LPARAM)' kann nicht in 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)' konvertiert werden
-
hmmm was ist das

&CEmpfaengerDlg::
warum machst du das wenn die funktionen OnBnClickedbtnsend & OnFunktionBlubMessage in der classe CEmpfaengerDlg sind

lass das mal weg zumindest bei OnFunktionBlubMessage
-
wenn ichs weglasse bekomm ich den gleich fehler.
-
ka was bei dir verkehrt läuft bei mir funzt das so. wäre der weg falsch den ich dir beschrieben hab, hätte sich da bestimmt schon jemand gemeldet und hätte es berichtigt.

-
ok dann nehm ich mal an das ich das irgendwie falsch verstanden hab!
ich erstelle ein dialog basierenden projekt mit dem namen server.
er erstellt mir die datein
server.cpp und .h
serverdlg.cpp, .h, stdafx und resourcejetzt füg ich die Zeile:
#define WM_BULUBB_MESSAGE (WM_APP + 10001)ganz oben in die serverdlg.cpp ein
dann die funktion:
void OnFunktionBlubMessage(WPARAM wParam, LPARAM lParam)in die serverdlg.h in die Klasse CserverDlg und anschließend in die serverdlg.cpp
dann füg ich in der serverdlg.cpp die ON_Message zeile hier ein:
BEGIN_MESSAGE_MAP(CserverDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_MESSAGE(WM_BULUBB_MESSAGE,OnFunktionBlubMessage) //hier eingefügt END_MESSAGE_MAP()hab ich das so richtig verstanden?

-
Fast - die #define Zeile sollte eventuell in der "serverdlg.h" landen, damit auch andere Klassen deines Projekts deine Message-ID verwenden können.
-
ja da hatte ich die auch schonmal drin, leider behebt das meinen fehler nicht.

-
ändere mal deine Funktion
void OnFunktionBlubMessage(WPARAM wParam, LPARAM lParam)in
LRESULT OnFunktionBlubMessage(WPARAM wParam, LPARAM lParam) { //mach was return 0L; }der Prototype in der h-Datei sieht dann so aus
afx_msg LRESULT OnFunktionBlubMessage(WPARAM wParam, LPARAM lParam)dann sollte es gehen.
Gruß Matthias
-
ich könnt dich küssen!
der fehler ist weg 
so.. nun mit
SendMessage(HWND_BROADCAST,WM_BULUBB_MESSAGE, (WPARAM)0 , (LPARAM)0);sollte mein dialog doch die nachricht empfangen oder?
oder wie bekomm ich die hwnd von meinem dialog raus?//edit
HWND test=this->m_hWnd;
klappt!
frohe weihnacht :xmas1: