Behandlungsroutine ähh ?
-
1. Tread bitte löschen, da ist was schief gelaufen.
-
hallo,
ich probiere gerade ein tut aus meinem Buch aus.
Problem ist, dass mein Visual Studio in E ist und nicht in D 2. Ich arbeite mit ver.2008 und das Buch in 2003.---------------------------
1.Öffnen Sie das erste Dialogfeld. Markieren Sie das erste Optionsfeld im ersten Dialogfeld.
// ok, kein Problem.2.Fügen Sie eine Behandlungsroutine für das Ereignis BN_CLICKED ein. Übernehmen Sie nicht den voreingestellten Namen für diese Funktion, sondern geben Sie den Namen OnRSelection ein.
// wo soll ich was fügen?3.Öffenen Sie die Klassenansicht und dort die Klasse CGraphicsDlg. Im Ordner Zuordnung selektieren Sie MESSAGE. Selektieren Sie aus dem Kontextmenü Gehe zu Definition (siehe Abbildung 9.5).
// abb 9.5 stimmt nicht ganz mein meinem VS überein ?!
Die abb 9.5:
feledi.de/1x.gif...so soll das später aussehen:
BEGIN_MESSAGE_MAP(CGraphicsDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_EXIT, OnBnClickedExit) ON_BN_CLICKED(IDC_RTPEN, OnRSelection) END_MESSAGE_MAP()
----------------------------
Bei sieht das so aus:
feledi.de/2x.JPG
Wie/Wo soll ich onClick mit OnRSelection erstellen?
Mein code Ausschnitt sieht so aus:BEGIN_MESSAGE_MAP(CGraphicsDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BEXIT, &CGraphicsDlg::OnBnClickedBexit) END_MESSAGE_MAP()
Ich könnte jetzt auch die Zeile per Hand eintragen, aber dann sagt der Compiler, er kennt kein OnRSelection.
Ich bin für jeden Tip Dankbar.
-
Du musst über den Classview gehen. Oder einfach über den Dialog-Edtor und dort auf dem Button einen neuen Handler einrichten. Rechte Maustaste auf dem Button sollte Dir weiter helfen.
Nur den Map-Eintrag machen genügt natürlich ncith. Du benötigst auch die Deklaration in der Klasse (im Header).
-
danke,
deine Worte sind wie immer Goldwert!ok, ich habe den Weg über Rechtsklick Button genommen.
das wurde mir erstellt:
ON_BN_CLICKED(IDC_RTPEN, &CGraphicsDlg::OnRSelection)Laut Buch soll ich aber bekommen:
ON_BN_CLICKED(IDC_RTPEN, OnRSelection)liegt das an der VS version?
soll ich jetzt ->> &CGraphicsDlg:: mitreinnehmen oder nicht?Mit oder ohne, der Compiler merkert nicht.
--------
2.Problem:
paar Seiten weiter kommt in meinem Buch:1. Fügen Sie eine Behandlungsroutine für die Nachricht WM_PAINT in die zweite Dialogfeldklasse (CPaintDlg) ein.
Blöd ist nur, dass mein Zweites Dialogfenster kein Buttion hat, wenn ich vorrübergehend einen Setze,dann finde ich kein WM_Paint in meinem Händler ?!
-
habs hinbekommen.
Knoten öffnen von der Klasse / Eigenschaften / Ereignisse / WM_Paint / hinzufügen.
Das habe ich durchzufall in einem anderen C++ Buch gelesen.