SplitterWindow
-
maRKus23 schrieb:
Wie lässt sich denn eine Klasse von CSplitterWnd ableiten.
Aber C++ programmieren kannst Du?

class CMySplitterWnd : public CSpliterWnd { //... und hier kommt was Du überschrien möchtest! }maRKus23 schrieb:
Hab mit dem Assistenten neue MFC-Klasse erstellt und wollte als abgeleitete Klasse CSplitterWnd wählen, doch CSplitterWnd ist in der Liste nicht verfügbar.
Kannst du mir bitte weiterhelfen?Muss man ales mit einem Assistenten erledigen? <kopfschüttel>
-
Das hab ich dann doch noch selbst hinbekommen.
Mein Problem war das ich vergeblich nach der Methode OnNcHitTest() gesucht habe, wie sie mir aus CProgressbar bekannt ist, doch die gibts hier leider nicht. Aber es gibt eine Methode OnToolHitTest.
Ist das denn die richtige?
Wie habe ich diese Methode zu überschreiben?
-
Wie hat OnToolHitTest auszusehen?
-
Kannst Du lesen?
Wer lesen kann ist klar im Vorteil!Ich habe weder von OnNcHitTest noch von OnToolHitTest geschrieben!
Sondern von HitTest!
virtual int HitTest(CPoint pt) const;Also könnte das so ausehen:
int CMySplitterWnd::HitTest(CPoint ) { return noHit; }
-
Ohjee
! Sorry. Mal schauen ob ich jetzt HitTest finde. Aber vorher zieh ich mal besser meine Brille an.
-
Hab das jetzt genau so probiert und es funktioniert nicht.
Ich bekomme eine Meldung Überladen Funktion nicht in CMySplitterWnd deklariert.
Lasse ich const am Ende der Deklaration weg, und ersetze noHit durch 0 wird das Programm kompiliert aber das Fenster lässt sich immer noch verschieben.
-
Vielleicht hast du mich auch falsch verstanden, ich möchte verhindern das mein linkes Fenster in der Größe veränderbar ist.
In das linke Fenster soll eine Baumstruktur kommen, die man anklicken kann und somit verschiedene Ansichten auswählt.
-
maRKus23 schrieb:
Vielleicht hast du mich auch falsch verstanden, ich möchte verhindern das mein linkes Fenster in der Größe veränderbar ist.
In das linke Fenster soll eine Baumstruktur kommen, die man anklicken kann und somit verschiedene Ansichten auswählt.Ich habe Dich sehr wohl verstanden.
Zeig mir mal wie Du das mit der Klasse gemacht hast!
-
#include "StdAfx.h" #include ".\mysplitterwnd.h" CMySplitterWnd::CMySplitterWnd(void) { } CMySplitterWnd::~CMySplitterWnd(void) { } int CMySplitterWnd::HitTest(CPoint) { return noHit; }#pragma once /*reinclude protection*/ #include "afxext.h" class CMySplitterWnd : public CSplitterWnd { public: CMySplitterWnd(void); ~CMySplitterWnd(void); virtual int HitTest(CPoint pt) const; };
-
Das fehlt ein const!
int CMySplitterWnd::HitTest(CPoint) [b]const[/b] { return noHit; }Jetzt musst Du nur noch dieses CMySplitterWnd auch in Deinem CMainFrame nutzen.
-
Juhu es klappt.

Danke für deine Mühe und deine Geduld mit mir
, hab mich ja echt blöd angestellt.