Wie prüfe ich ob ein Butten gedrückt wurde den ich selbst erstellt habe ?



  • Hi Leute,

    ich habe einen Butten in einem SDI View erstellt, in der OnCreate(LPCREATESTRUCT lpCreateStruct) Funktion von View.cpp.

    CRect rect2(80,5,150,30);
    	DWORD dwStyleCtrlButton = WS_CHILD|WS_VISIBLE;
    	m_ctrlButton.CreateEx(NULL,_T("BUTTON"),NULL, dwStyleCtrlButton, rect2, this, IDC_WZD_CONTROL);
    	m_ctrlButton.SetWindowText("Button");
    

    m_ctrlButton habe ich in der View.h als CButton deklariert !

    Soweit funktioniert das ganze, aber wo (View, Doc...)und in welcher Funktion greife ich auf den Button zu um z.b. zu prüfen ob er geklickt wurde oder so 😕 😕 😕 ?

    Danke euch schon mal vorab 😉
    Gruß
    ShadowEater 😕



  • BEGIN_MESSAGE_MAP:

    ON_BN_CLICKED(IDC_WZD_CONTROL, &CDialogDlg::OnButton)
    

    H:

    afx_msg void OnButton();
    

    CPP:

    void CDialogDlg::OnButton()
    {
        //whatever
    }
    

    Und natürlich musst du "IDC_WZD_CONTROL" noch definieren - falls noch nicht passiert!



  • Hi Flockig,

    danke für Deine schnelle Antwort. 🕶

    Und natürlich musst du "IDC_WZD_CONTROL" noch definieren - falls noch nicht passiert!

    Meinst Du die Schaltfäche ID=
    Und dann "IDC_WZD_CONTROL" und dann noch eine eindeutige Nr. z.B.:101 ?
    Das hab ich gemacht 😉

    Könntest Du das etwas genauer erklären:

    ON_BN_CLICKED(IDC_WZD_CONTROL, &CDialogDlg::OnButton)

    Du machst in der Message Map eine Referenz auf CDialogDlg ???? Wieso Dialog 😕 😕 😕

    Danke vorab für Deine Mühe 🙂 👍 🙂
    Gruß
    ShadowEater



  • Die "IDC_WZD_CONTROL" definierst du natürlich in der Resource.h

    #define    IDC_WZD_CONTROL    1001
    

    Achtung!! 1001 ist nur ein BEISPIEL!

    Anstelle von CDialogDlg steht selbstverständlich die Klasse, die deinen Button enthält.



  • Danke Flockig,

    es funktioniert nun alles ;).

    Sag mal, welche Art der Controlerstellung ist die beste, eine eigene Button Klasse anlegen usw. oder die Methode über die Message Map ?

    Gruß
    ShadowEater


Anmelden zum Antworten