Eigene Klasse

kerian

Erfahrenes Mitglied
Hallo Leute,
arbeite mit VC 6.0 .
Ich erstellte mir eine Klasse mit dem Assistenten vom Datentype: Allgemeine Klasse.
Also einer Klasse die von keiner MFC Abgeleitet wird.
Jetzt zu meinem Problem:
Ich möchte der Klasse beibringen, dass sie Message's empfangen kann. Leider habe ich aber kein Handle von meiner Klasse, den ich dann an die sendende Klasse übergeben könnte !!
Und den brauche ich damit ich mit Post- und SendMessage(..) arbeiten kann.
Hat jemand eine Idee ?
 
Nicht-Fensterklassen haben keine Message Queue, können also keine Messages empfangen. Du müsstest deine Klasse von CWnd ableiten und das Fenster mit Create() erzeugen. Es braucht dabei nicht angezeigt werden.

Gruß
MCoder
 
Hallo, danke für den Tipp.
Du hast recht, sowas habe ich mir auch schon gedacht!
Es gibt im Assistenten generic CWnd als Basisklasse, das Ding benötigt sogar keine Ressource :) . Grade nach Tagelangem suchen gefunden! Aber vielleicht gibt es noch einen einfacheren Weg!
 
Hallo,
eine sache habe ich noch. Bei Create will er auch einen Pointer auf Parent CWnd* pParentWnd .

HTML:
virtual BOOL Create(
   LPCTSTR lpszClassName,
   LPCTSTR lpszWindowName,
   DWORD dwStyle,
   const RECT& rect,
   CWnd* pParentWnd,
   UINT nID,
   CCreateContext* pContext = NULL
);
Hier würde ich amliebsten keinen Patenr eintragen wollen, ght das?

Gruß
Kerian
 
Ja, das geht schon. Trage für diesen Parameter einfach NULL ein. Die ersten beiden Parameter (Klassen- und Fenstername) kannst du ebenfalls auf NULL setzen.

Gruß
MCoder
 
Jaa das geht schon aber nur mit CreateEx(...). Dann bekomme ich aber kein Handle und das brauche ich damit ich der Class eine Message schicken kann!

Gruß
Kerian
 
Zurück