按下Ctrl弹出一个对话框松开关闭此对话框,如何实现?
来源:互联网 发布:网络通信协议报文 编辑:程序博客网 时间:2024/06/06 00:47
何志丹
(一),新建一个单文档工程CtrlEg。
(二),在视图类中为WM_KEYDOWN和WM_KEYUP增加响应函数。具体代码如下:
Dialog dlg ;//定义成类成员更规范,这儿定成变量是为了方便查看
void CCtrlEgView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if(nChar == VK_CONTROL )
if( NULL == dlg.GetSafeHwnd())
{
dlg.Create(IDD_ABOUTBOX);
dlg.ShowWindow(SW_SHOW);
}
CView::OnKeyDown(nChar, nRepCnt, nFlags);
}
void CCtrlEgView::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if(nChar == VK_CONTROL)
dlg.DestroyWindow();
CView::OnKeyUp(nChar, nRepCnt, nFlags);
}
(三),运行CtrlEg.exe,按Ctrl可以弹出对话框,松开没有关闭此对话框。根本原因是CCtrlEgView并没有收到WM_KEYUP消息。
(四),进行如下修改就好了:
void CCtrlEgView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if(nChar == VK_CONTROL )
if( NULL == dlg.GetSafeHwnd())
{
dlg.Create(IDD_ABOUTBOX);
dlg.ShowWindow(SW_SHOW);
SetFocus();
}
CView::OnKeyDown(nChar, nRepCnt, nFlags);
}
- 按下Ctrl弹出一个对话框松开关闭此对话框,如何实现?
- VC MFC 对话框,如何实现鼠标拖动显示一个框,松开鼠标框就消失
- 如何实现按钮按下响应一个事件 松开另一个?
- 是否关闭此对话框.doc
- Chrome 浏览器 禁止再次弹出此对话框 如何恢复
- 如何让主对话框启动时弹出一个对话框
- JavaScript 如何弹出一个对话框窗口
- C++ MFC 中, 如何按下按钮弹出对话框
- 如何取消WIN2008下应用报错后弹出的对话框 程序已停止 要求关闭程序
- 如何实现vc菜单弹出对话框
- 如何实现关闭窗口时呈现对话框
- 弹出一个对话框
- 弹出一个提示对话框
- Qt弹出一个对话框
- 关闭浏览器弹出对话框事件
- 关闭窗口前弹出对话框
- webbrowse 自动关闭弹出对话框
- 对话框的弹出与关闭
- Unified Communications
- Function Inheritance and Overriding and Function Overloading In D
- 先按ctrl再按A和先按A再按ctrl一样吗?
- 请问Bind ,Eval有说明区别
- ASP.NET-用户'NT AUTHORITY/NETWORK SERVICE' 登录失败的解决方法
- 按下Ctrl弹出一个对话框松开关闭此对话框,如何实现?
- vc开发之感受
- asp.net页面从初始化到卸载事件顺序(及对页面控件调用)完整列表
- Ajax中的UpdatePanel与Freetextbox兼容问题的初步解决方法
- ASP.NET-ASP.NET配置(web.config)无法连接到SQL Server 数据库的解决方法
- 关apache 密码与用户名的问题
- 时间的比较
- 软件接口的规范艺术
- 在linux关机时执行某个脚本