Button, ON_BN_CLICKED und ON_WM_LBUTTONDOWN
-
Hallo,
Ich möchte einen Button erstellen und eine Funktion aufrufen, noch bevor der Button wieder losgelassen wird. Das normale Event ON_BN_CLICKED reagiert erst wenn ich den Button wieder freigebe. Daher habe ich über den Hauptdialog versucht mittels ON_WM_LBUTTONDOWN diesen click "schneller" auszuwerten und dann mittels GetState entsprechend zu testen ob gedrueckt oder nicht. Das Problem ist hierbei allerdings das dies nur funktioniert solange ich nicht auf den Button drücke :(. Eine Möglichkeit für mich wäre allerdings auf dem Hauptdialog spezielle Regionen über die Koordinaten zu definieren welche auf Tastendruck entsprechend reagieren und ich meine Funktion entsprechend ausführen kann. Jemand eine Idee wie ich das mittels normalen Button lösen kann ??
Thx Hpman
-
du muesstest doch eine instanz erstellen/eine klasse von cbutton ableiten koennen, die dann ihrerseits auf wm_lbuttondown reagiert.
Esco
-
Besten Danke erstmal, leider habe ich die ganze Klassen Vererbung etc. was C++ bzw. die OOP betrifft noch nie richtig verstanden und bin damit nicht wirklich aus der Antwort schlau geworden was aber wie gesagt ja an mir liegt. Ich habe mich bisher mit reinen C beschäftigt und bisherige MFC Projekte über den Klassenassistenten und den Resourcen Editor irgendwie halbwegs erschlagen.
Diese beiden Events ON_WM_LBUTTONDOWN() und ON_BN_CLICKED(IDC_BUTTON1, OnButton1) inclusive des Buttons IDC_Button1 habe ich mir erzeugen lassen. Wobei die Dialogklasse defaultmässig ja von CDialog kommt. Meine Vorstellung war daher das ich über die im Resourcenfile definierten Buttons
gehen kann (daher keine über CButton erst während des Programms erstellten Objekte und mittels .Create erzeugten) und die entsprechend auf meine Bedürfnisse "umrüsten" kann. Den so erhofften Vorteil sahe ich eigentlich daran das ich mir im Resourcen Editor die GUI Grafik zusammenschieben kann ohne mir über geaenderte x,y Bereiche Gedanken machen zu muessen.Nun scheint zumindest das ich zukunftig nicht drumrumkomme mir diverse C++ Grundlagen anzueignen
Hpman
-
Hpman schrieb:
Meine Vorstellung war daher das ich über die im Resourcenfile definierten Buttons
gehen kann (daher keine über CButton erst während des Programms erstellten Objekte und mittels .Create erzeugten) und die entsprechend auf meine Bedürfnisse "umrüsten" kann.du kannst immer noch ueber die im ressourcefile deklarierten elemente gehen.
- eigene klasse ableiten von CButton
- klassenassi -> mebervariable anklicken und dann einen Namen zuweisen. du kannst dann in diesem dialog, wo du den namen zuweisen kannst, auch die basisklasse nochmal neu auswaehlen; da nimmst du dann deine eigene klasse.
Esco