MFC中获得控件焦点
1.PreTranslateMessage如何区分KeyUp和KeyDown?直接判断是直接是Down的;2.不使用PreTranslateMessage时如何获取窗体焦...
1.PreTranslateMessage 如何区分KeyUp和KeyDown?直接判断是直接是Down的;2.不使用PreTranslateMessage时 如何获取窗体焦点?直接SetFocus()不行;3.以上2题每题50分;
展开
3个回答
2013-04-12
展开全部
KeyUP 是 k-e-y-u-p; KeyDown是k-e-y-d-o-w-n; 前者5位英文字母,后者是7位,按位数判断就可以了。
不使用PreTranslateMessage的话眼睛盯着窗体鼠标狂点就有焦点了,实在不行拿个凸透镜瞄的准点就行了
不使用PreTranslateMessage的话眼睛盯着窗体鼠标狂点就有焦点了,实在不行拿个凸透镜瞄的准点就行了
展开全部
第一个问题
BOOL CMy1Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->wParam==0x31)
{
MessageBox(_T("1 DOWN"));
}
}
if(pMsg->message==WM_KEYUP)
{
if(pMsg->wParam==0x31)
{
MessageBox(_T("1 UP"));
}
}
return CDialog::PreTranslateMessage(pMsg);
}
运行以后先按住1,弹出提示,按住1不要放,按回车,再松开1,弹出提示
第二个问题没看明白,能不能先说一下使用PreTranslateMessage如何获取窗体焦点
BOOL CMy1Dlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->wParam==0x31)
{
MessageBox(_T("1 DOWN"));
}
}
if(pMsg->message==WM_KEYUP)
{
if(pMsg->wParam==0x31)
{
MessageBox(_T("1 UP"));
}
}
return CDialog::PreTranslateMessage(pMsg);
}
运行以后先按住1,弹出提示,按住1不要放,按回车,再松开1,弹出提示
第二个问题没看明白,能不能先说一下使用PreTranslateMessage如何获取窗体焦点
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-04-12
展开全部
请叙述需求,如此问法无法回答。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询