ATL消息过滤 鄙人刚学ATL,创建了一个基于Edit的控件,想过滤一些消息,确找不到应该在何处过滤,请高人指点下啊,感激不尽。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 BEGIN_MSG_MAP(CYourClass) ALT_MSG_MAP(1) MESSAGE_HANDLER(WM_GETDLGCODE, OnGetDlgCode) MESSAGE_HANDLER(WM_KEYDOWN, onkeydown) MESSAGE_HANDLER(WM_CHAR, OnEditInputMagnification) END_MSG_MAP() .cpp in constructor: CYourClass::CYourClass() : m_Edit(_T("EDIT"), this, 1) {} in OnInitDialog: m_Edit.SubclassWindow(::GetWindow(GetDlgItem(IDC_COMBO), GW_CHILD)); add if you want all keys add following: LRESULT CYourClass::OnGetDlgCode(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { return DLGC_WANTALLKEYS; } and finally you can get KeyDown: LRESULT CYourClass::onkeydown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { switch (wParam) { case VK_RETURN: { ... } break; case VK_TAB: { ... } break; } bHandled = FALSE; return S_OK; } 谁用过IUpdateSearcher::BeginSearch这个函数? 关于GDI+的一段代码,看不懂,求高手指教 如何获得当前的CPU状态,与当前的内存大小(急!!!) dll的简单问题 应该选择哪套界面库进行我的界面开发? 关于静态变量初始化的问题!!! CString有长度限制吗? 请教简单问题 帮我修改一段中英文翻译好吗? new与不new有何不同?? 判断mci设备是否打开的问题 addstring为什么出错啊
ALT_MSG_MAP(1)
MESSAGE_HANDLER(
WM_GETDLGCODE, OnGetDlgCode)
MESSAGE_HANDLER(WM_KEYDOWN, onkeydown)
MESSAGE_HANDLER(
WM_CHAR, OnEditInputMagnification)
END_MSG_MAP()
.cpp
in constructor: CYourClass::CYourClass() : m_Edit(_T("EDIT"), this, 1) {}
in OnInitDialog: m_Edit.SubclassWindow(::GetWindow(GetDlgItem(IDC_COMBO), GW_CHILD));
add if you want all keys add following:
LRESULT CYourClass::OnGetDlgCode(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return DLGC_WANTALLKEYS;
}
and finally you can get KeyDown:
LRESULT CYourClass::onkeydown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
switch (wParam)
{
case VK_RETURN:
{
...
}
break;
case VK_TAB:
{
...
}
break;
}
bHandled = FALSE;
return S_OK;
}