COMMAND_HANDLER
Definuje položku mapy zprávy.
COMMAND_HANDLER( id, code, func )
Parametry
id
[v] Identifikátor položky nabídky, řízení nebo akcelerátoru.code
[v] Kód upozornění.func
[v] Název funkce zpracování zprávy.
Poznámky
COMMAND_HANDLERmapuje WM_COMMAND zpráva Zadaný popisovač funkce, na základě kód oznámení a identifikátor ovládacího prvku.Příklad:
class ATL_NO_VTABLE CPolyProp :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CPolyProp, &CLSID_PolyProp>,
public IPropertyPageImpl<CPolyProp>,
public CDialogImpl<CPolyProp>
{
public:
BEGIN_COM_MAP(CPolyProp)
COM_INTERFACE_ENTRY(IPropertyPage)
END_COM_MAP()
BEGIN_MSG_MAP(CPolyProp)
COMMAND_HANDLER(IDC_SIDES, EN_CHANGE, OnEnChangeSides)
CHAIN_MSG_MAP(IPropertyPageImpl<CPolyProp>)
END_MSG_MAP()
// When a CPolyProp object receives a WM_COMMAND message identified
// by IDC_SIDES and EN_CHANGE, the message is directed to
// CPolyProp::OnEnChangeSides for the actual processing.
LRESULT OnEnChangeSides(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/,
BOOL& /*bHandled*/);
Všechny funkce v COMMAND_HANDLER makra musí být definována takto:
LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
Nastaví mapu zpráva bHandled na TRUE před CommandHandler se nazývá.Pokud CommandHandler plně nezpracovává zprávy, měli nastavit bHandled na FALSE označit zprávu zapotřebí dalšího zpracování.
[!POZNÁMKA]
Vždy začít zpráva mapa s BEGIN_MSG_MAP.Potom můžete deklarovat mapy následující alternativní zprávu s ALT_MSG_MAP.END_MSG_MAP makro označuje konec zprávy mapy.Mapa každé zprávy musí mít přesně jeden výskyt BEGIN_MSG_MAP a END_MSG_MAP .
Kromě COMMAND_HANDLER , můžete použít MESSAGE_HANDLER mapovat WM_COMMAND zpráva bez ohledu na identifikátoru nebo kód.V tomto případě MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) všechny přímé WM_COMMAND zpráv s OnHandlerFunction .
Další informace o použití mapy zprávy v ATL naleznete Zpráva mapuje.
Požadavky
Záhlaví: atlwin.h