| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2574 人关注过本帖
标题:如何实现快捷键调出后台运行的窗口
只看楼主 加入收藏
windyfzz
Rank: 2
等 级:禁止访问
帖 子:90
专家分:12
注 册:2010-7-25
结帖率:68%
收藏
已结贴  问题点数:20 回复次数:4 
如何实现快捷键调出后台运行的窗口
做了一个定时器,点击"后台运行"时程序后台运行。(我的实现是当点击"后台运行"调用ShowWindow(SW_HIDE)函数。)

我想当我按Q或q键时再次调出程序,于是我在对话框类中添加了一个WM_CHAR消息
void CShuntdownTimerDlg::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
    // TODO: Add your message handler code here and/or call default
    if (113 == nChar || 81 == nChar)  //q或Q的ASCII码
Shuntdown Timer.rar (7.2 KB)

    {  
        ShowWindow(SW_SHOWNORMAL);
      
    }
    //CDialog::OnChar(nChar, nRepCnt, nFlags);
}
编译运行成功,但当窗口后台运行时按q或Q键时窗口却没有显示出来。为什么?
搜索更多相关主题的帖子: 后台 窗口 调出 运行 
2010-09-11 20:15
ybjx1987
Rank: 3Rank: 3
来 自:武汉
等 级:论坛游侠
帖 子:26
专家分:175
注 册:2008-11-26
收藏
得分:20 
当你的程序隐藏后就不能直接接收WM_CHAR消息了,你可以建立一个全局钩子来实现对WM_KEYUP或WM_KEYDOWN的响应。你也可以用GetAsyncKeyState(int vKey)来判断某个键是否按下,vKey是键盘的虚键代码,每个键的虚键代码可以在网上查到,你可以在OnTimer()进行判断。
2010-09-11 20:34
windyfzz
Rank: 2
等 级:禁止访问
帖 子:90
专家分:12
注 册:2010-7-25
收藏
得分:0 
回复 2楼 ybjx1987
谢谢,改好了!

这是新的程序,增加了一些功能。(附源代码,因为刚学MFC,代码难免不甚完美,真诚的希望大家给改进下!)

Shift+Ctrl键调出后台程序。

Shuntdown Timer.rar (1.85 MB)

2010-09-12 21:35
ycc892009
Rank: 2
等 级:论坛游民
帖 子:34
专家分:90
注 册:2009-12-23
收藏
得分:0 
我给一点建议吧。ShowWindow函数我觉得不是很好用的。你可以用SetwindowPos函数把窗口大小都设为0
,这个函数执行后是可以接受到wm消息的。当你想再次显现窗口的时候就再次调用SetwindowPos设为原来窗口的大小。
这个函数很有用的。这样就不用hook那么麻烦了。个人见解。

到达理想的界面是我的目标,成功却不是快捷方式!
2010-09-28 12:24
mjx91282041
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-7-25
收藏
得分:0 
学习,学习!谢谢楼主的分享~!
2011-07-26 01:58
快速回复:如何实现快捷键调出后台运行的窗口
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017615 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved