000
26.10.2006, 16:56 Uhr
Ivolein
|
Hallo,
ich habe ein kleinen Problem mit einer Message_Map. Für die Kommunikation mit der Seriellenschnittstelle benütze ich die Klasse "SerialPort" von Remon Spekreijse. Wenn ein Byte an der Schnittstelle empfangen wird, dann wird das Event "WM_COMM_RXCHAR" gesetzt und dies wird von der Message_Map aufgefangen und das Empfangene Byte an die entsprechene Funktion weitergegeben. Dies Funktioniert auch schon sehr gut, wenn ich die Message_Map von der DLG-Klasse (MFC Dialog-Projekt) benützte. Wenn ich aber eine Klasse schreibe die auch von CDialog abgeleitet wird und dort eine Message_Map implementiere und in dieser neuen Klasse mir die SerialPort-Klasse initialisiere, dann wird die Message_Map NICHT ausgeführt.
Die Klasse SerialPort bekommt am Anfang einen CWnd* Pointer übergeben mit dem ownder von der SerialPort-Klasse. Wenn ich dort beim aufruf den this-Pointer übergebe, dann wird die Message-Map leider nicht aufgerufen. Übergebe ich aber den Pointer von der DLG-Klasse, dann wird die Message-Map von der DLG-Klasse aufgerufen.
Der Aufbau der Message-Maps ist in beiden fällen identisch.
So.. nun meine Frage: Wie kann ich dafür sorgen, dass bei einem Event die Message_Map auf der neuen Klasse aufgerufen wird und nicht die message_map von der DLG-Klasse ?
Ich hoffe, ich habe das Problem zumindest halbwegs deutlich erklärt.
Gruß,
Michi |