Größe der Steuerelemente verändern
-
hi,
ich habe in meinem Programm ein TreeCtrl und ein MSFlexGrid direkt nebeneinander.
Jetzt möchte ich dem Benutzer die Möglichkeit geben, die Breiten der beiden Steuerelemente zu verändern. Also das er sozusagen die Grenze verschiebt (siehe WindowsExplorer).
Ich habe mir jetzt überlegt, dass mit LButtonDown und LButtonUp zu machen, allerdings werden diese Nachrichten ja nicht immer an das Hauptfenster geschickt, sondern an das jeweilige Fenster, auf dem sich die Maus zur Zeit befindet.
Bei dem FlexGrid ist das noch kein Problem, da ich da die MouseUp-Nachricht abfangen und an das Hauptfenster weiterleiten kann. Beim TreeCtrl funzt das allerdings nicht; da gibt es nur die Click-Nachricht.Was kann ich jetzt tun, damit die Nachricht auch an das Hauptfenster geschickt wird??
Oder gibt es noch eine ganz andere Möglichkeit, mein Problem zu lösen??Danke
Dommel
-
Erzeuge einfach eine neue Klasse die auf CTreeCtrl basiert, z.B. kannst du die
Klasse CMyTreeCtrl erzeugen. Da kannst du die OnLButtonDown-Methode überschreiben. Für den Fall das du nicht weißt, wie das geht habe ich dir den Code angegeben:// H E A D E R D E R D A T E I class CMyTreeCtrl : public CTreeCtrl { // Konstruktion public: CMyTreeCtrl(); // Attribute public: // Operationen public: // Überschreibungen // Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen //{{AFX_VIRTUAL(CMyTreeCtrl) virtual void OnLButtonDown(UINT nFlags, CPoint point); // !!! //}}AFX_VIRTUAL // Implementierung public: virtual ~CMyTreeCtrl(); // Generierte Nachrichtenzuordnungsfunktionen protected: //{{AFX_MSG(CMyTreeCtrl) //}}AFX_MSG DECLARE_MESSAGE_MAP() };// C P P - T E X T . . // Konstruktor, Destruktor... . . BEGIN_MESSAGE_MAP(CMyTreeCtrl, CTreeCtrl) //{{AFX_MSG_MAP(CMyTreeCtrl) ON_WM_LBUTTONDOWN() // !!! //}}AFX_MSG_MAP END_MESSAGE_MAP() // Überschreibe OnLButtonDown-Methode void CMyTreeCtrl::OnLButtonDown(UINT nFlags, CPoint point) { // Mein Code... }
-
Es soll nicht
Klasse sondern Klasse heißen (Sollte keine Verwirrung werden)...
Hat's denn geklappt?
-
Danke für die Antwort. Werds gleich mal ausprobieren.
Ich hab es jetzt erstmal so gemacht, dass ich über der Grenze eine kleine Bitmap platziert habe und man dann mit der Bitmap die Größen verändern kann.
Das geht ganz gut, weil die Bitmap vom Typ CStatic ist, und hier das Hauptfenster die Nachrichten bekommt.Ich werd deine Methode aber gleich mal ausprobieren.
-
so, dass mit dem LButtonUp hat gefunzt. danke nochmals.
allerdings klappt das mit dem Größe verändern noch nicht. Deshalb belasse ich es wohl erstmal bei der Methode mit dem Bitmap