000
25.05.2007, 17:15 Uhr
Lensflare
|
Hallo.
wie kann ich einen Klick auf ein Control wie zB CEdit abfangen, ohne für jedes Control eine OnBnClickedButton1 usw Funktion zu erstellen?
Ich habe folgendes probiert:
C++: |
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point) { CDialog::OnLButtonDown(nFlags, point);
//aktion... }
|
damit werden nur die klicks auf das Dialogfenster abgefangen, nicht die klicks auf CEdits oder CButtons
C++: |
void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else if(nID == IDC_EDIT1) // ((nID & 0xFFF0) == IDC_EDIT1) geht auch nicht { //zum testen AboutDialog öffnen CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } }
|
das geht auch nicht. der AboutDialog wird nie geöffnet. Nur wenn man ihn wie vorgesehen im Menü wählt.
Ich muss auch wissen, welches Control angeklickt wurde, also würde wohl das hier nicht gehen:
C++: |
ON_CONTROL_RANGE(BN_CLICKED,100,110,OnAnyButton)
|
-- Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten. (Emerson Pugh Trost) |