mfc dialog做个浏览器 怎么把Esc按键消息传给浏览器里的flash~ 200
默认情况是:按Esc键->CDialog::OnCancel只调用CDialog::EndDialog就完了...为了按esc不自动退出我重载了OnCancel()也解决...
默认情况是:
按Esc键
->CDialog::OnCancel只调用CDialog::EndDialog
就完了...
为了按esc不自动退出 我重载了OnCancel() 也解决了这个问题
但是esc不能传给dialog里的flash里的游戏里的人物属性窗口
实现人物属性窗口关闭~
比如这个dialog是个浏览器
里面跑一个页游
页游关闭人物属性窗口的时候 就会用到Esc键 展开
按Esc键
->CDialog::OnCancel只调用CDialog::EndDialog
就完了...
为了按esc不自动退出 我重载了OnCancel() 也解决了这个问题
但是esc不能传给dialog里的flash里的游戏里的人物属性窗口
实现人物属性窗口关闭~
比如这个dialog是个浏览器
里面跑一个页游
页游关闭人物属性窗口的时候 就会用到Esc键 展开
展开全部
重载虚函数
BOOL CNetHelperDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->wParam==VK_ESCAPE)//退出键Esc
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
这里判断的是KEYDOWN,你把WM_KEYDOWN改为WM_KEYUP就可以获得按键起来的消息
要获取其它按键,请自己搜索相关系统按键与非系统按键的键值即可。
BOOL CNetHelperDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类
if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->wParam==VK_ESCAPE)//退出键Esc
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
这里判断的是KEYDOWN,你把WM_KEYDOWN改为WM_KEYUP就可以获得按键起来的消息
要获取其它按键,请自己搜索相关系统按键与非系统按键的键值即可。
追问
BOOL CNetHelperDlg::PreTranslateMessage(MSG* pMsg)
这个我懂 我也搞过 不过用这个是完全屏蔽Esc
我的意思是 Esc要能用 并且支持到flash游戏里去
所以不能这样搞
追答
你不能给控制flash的对象发送消息?你收到Esc之后,发个消息想怎么做就怎么做呗。
展开全部
在OnCancel()中,向页面内的控件(比如浏览器控件)发送ESC的按键消息。
更多追问追答
追问
我获取了dialog句柄和浏览器控件句柄
分别对他们试了 都没有效果(我保证消息发送有执行成功)
::SendDlgItemMessage(hwnd, IDD_CRACKBROWSER_DIALOG, WM_KEYDOWN, VK_ESCAPE, 1);
::SendDlgItemMessage(hwnd, IDD_CRACKBROWSER_DIALOG, WM_KEYUP, VK_ESCAPE, 1);
::SendMessage(hwnd,WM_KEYDOWN, VK_ESCAPE, 1);
::SendMessage(hwnd,WM_KEYUP, VK_ESCAPE, 1); //释放
追答
第2个,向对话框发消息肯定不对,这不就发给自己这个窗口了吗(这样是否形成了无限循环)
第1个,向IDD_CRACKBROWSER_DIALOG发送消息,但这个ID看着像是对话框的ID
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
互采
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |