Postupy: Zpracování událostí modelu Windows Forms z nativních tříd jazyka C++
Nativní třídy C++ můžete povolit, aby přijímaly zpětná volání ze spravovaných událostí vyvolaných z ovládacích prvků model Windows Forms nebo jiných formulářů s formátem mapování maker MFC. Události jímky v zobrazeních a dialogech se podobají stejnému úkolu ovládacích prvků.
Budete muset:
Připojte obslužnou rutinu
OnClick
události k ovládacímu prvku pomocí MAKE_DELEGATE.Vytvořte mapu delegáta pomocí BEGIN_DELEGATE_MAP, END_DELEGATE_MAP a EVENT_DELEGATE_ENTRY.
Tato ukázka pokračuje v práci, kterou jste provedli v části Postupy: Vytvoření datové vazby DDX/DDV s model Windows Forms.
Teď přidružíte ovládací prvek MFC (m_MyControl
) k delegátu obslužné rutiny spravované události volanou OnClick
pro spravovanou Click událost.
Připojení obslužné rutiny události OnClick:
Do implementace BOOL CMFC01Dlg::OnInitDialog přidejte následující kód:
m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
Do veřejné části v deklaraci třídy CMFC01Dlg : public CDialog přidejte následující kód.
// delegate map BEGIN_DELEGATE_MAP( CMFC01Dlg ) EVENT_DELEGATE_ENTRY( OnClick, System::Object^, System::EventArgs^ ) END_DELEGATE_MAP() void OnClick( System::Object^ sender, System::EventArgs^ e );
Nakonec přidejte implementaci
OnClick
pro CMFC01Dlg.cpp:void CMFC01Dlg::OnClick(System::Object^ sender, System::EventArgs^ e) { AfxMessageBox(_T("Button clicked")); }
Viz také
MAKE_DELEGATE
BEGIN_DELEGATE_MAP
END_DELEGATE_MAP
EVENT_DELEGATE_ENTRY