社区
界面
帖子详情
win32 api实现窗口前端显示
imLWJ
2011-10-04 10:36:06
按下F5这个窗口会跳到所有窗口的前端,如何截下这个F5消息,并实现前端显示
...全文
682
3
打赏
收藏
win32 api实现窗口前端显示
按下F5这个窗口会跳到所有窗口的前端,如何截下这个F5消息,并实现前端显示
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Gloveing
2011-10-05
打赏
举报
回复
装个键盘钩子、、、截获F5按键消息在处理
caddor2011
2011-10-05
打赏
举报
回复
原理: RegistreHotKey是全局的一个注册热键的函数,用其可以向系统申请注册一个热键,无需借助于加载快捷键资源的方法。
函数原型:BOOL RegisterHotKey(HWND hWnd,int id,UINT fsModifiers,UINT vk);
参数介绍:
hWnd:接收热键产生WM_HOTKEY消息的窗口句柄。若该参数NULL,传递给调用线程的WM_HOTKEY消息必须在消息循环中中进行处理。
id:定义热键的标识符。调用线程中的其他热键不能使用同样的标识符。应用功能程序必须定义一个0X0000-0xBFFF范围的值。一个共享的动态链接库(DLL)必须定义一个范围为0xC000-0xFFFF的值(GlobalAddAtom函数返回该范围)。为了避免与其他动态链接库定义的热键冲突,一个DLL必须使用GlobalAddAtom函数获得热键的标识符。
fsModifoers:定义为了产生WM_HOTKEY消息而必须与由nVirtKey参数定义的键一起按下的键。该参数可以是如下值的组合: MOD_ALT:按下的可以是任一Alt键。MOD_CONTROL:按下的可以是任一Ctrl键。 MOD_SHIFT:按下的可以是任一Shift键。 MOD_WIN:按下的可以是任一Windows按键。这些键可以用Microsoft Windows日志记录下来。 MOD_NOREPEAT:更改热键行为,以便键盘自动重复不会产生多个热键通知。
vk:定义热键的虚拟键码。
返回值:若函数调用成功,返回一个非0值。若函数调用失败,则返回值为0。若要获得更多的错误信息,可以调用GetLastError函数。
当程序结束的时候,要卸载该热键。 卸载热键用到的函数是:UnregisterHotKey ,该函数功能:该函数释放调用线程先前登记的热键。
函数原型:BOOL UnregisterHotKey(HWND hWnd,int id);
参数:
hWnd:与被释放的热键相关的窗口句柄。若热键不与窗口相关,则该参数为NULL。
id:定义被释放的热键的标识符。
返回值:若函数调用成功,返回值不为0。若函数调用失败,返回值为0。若要获得更多的错误信息,可以调用GetLastError函数。
注意到,如果向系统注册一个热键”alt+a”,要做的就是 fsModifoers设为MOD_ALT, vk 设置为VK_A(VK_A是自定义的一个宏,虚拟码为:65,也可以借助mfc的,不用定义).用法如下:
BOOL m_isKeyRegistered; //是否注册该热键成功
m_nHotKeyIDA=0; //这个值是自己设置的, 由于是全局的,其他程序如果用到该原理来实现注册热键,很可能会冲突,所以取值的时候,要留意。
m_isKeyRegistered = ::RegisterHotKey(GetSafeHwnd(),m_nHotKeyIDA,MOD_ALT,VK_D);
ASSERT(m_isKeyRegistered != FALSE); //DEBUG版本
上面的代码放到CTest3Dlg::OnInitDialog里面即可。
卸载热键则是将卸载代码放到OnCancel,OnOK,函数里面。
注册之后,系统怎样响应快捷呢?
手动添加: ON_MESSAGE(WM_HOTKEY,OnHotKey) ,
//热键处理函数
LONG CTest3Dlg::OnHotKey(WPARAM wParam,LPARAM lParam)
{
if(wParam==m_nHotKeyIDA)
{
AfxMessageBox(_T("A功能"));
………………..
}
return 0;
}
然后SetForeGroundWindow(你 的窗口句柄)
gameslq
2011-10-04
打赏
举报
回复
用RegisterHotKey注册热键,并
在消息WM_HOTKEY中进行响应,用函数SetForegroundWindow(hwnd); 把窗口置最前端。
C#实时
窗口
截图
C#Winfom程序,
实现
窗口
实时截图,输入
窗口
名称,实时抓取屏幕
窗口
,即使
窗口
没有获得焦点,或者不处于
前端
,甚至不可见(只要
窗口
不最小化)都可以抓取,并呈现在前段 ,用到了
Win32
API
函数
API
创建 panel bar(Linux和Windows各1例)
API
创建 panel bar(Linux和Windows各1例) Delphi 程序和源代码,应用
API
全代码
实现
的,都不
显示
标题栏,并且总是
前端
显示
,对于学习 Window 编程有很大的帮助哦!
精通
Win32
API
编程-Windows图形界面编程
Windows的
API
(Application Programming Interface,应用程序编程接口),是Windows 操作系统提供给应用程序的大量函数,学习本课程,不仅可以掌握Windows界面编程,开发华丽的Windows桌面运用程序,也可以为MFC框架的学习奠定扎实的基础,同时是否熟练的掌握Windows
API
开发,也是企业考量优秀程序员一个非常重要的指标!
win32
设置
窗口
临时
显示
到最前面
如何设置
窗口
临时
显示
到桌面最前面? 关键点:
win32
api
--AttachThreadInput,SetForegroundWindow
实现
代码: void CMainFrame::BringMainwndToForeground() { //说明:SetForegroundWindow在debug模式一直成功,非debug模式会有失败的情况,解决方法是...
python
win32
api
sendmessage_
win32
api
win32
gui
win32
con
窗口
句柄 发送消息 常用方法
Py
win32
是一个Python库,为python提供访问Windows
API
的扩展,提供了齐全的windows常量、接口、线程以及COM机制等等。1.通过类名和标题查找
窗口
句柄,并获得
窗口
位置和大小import
win32
guiimport
win32
api
classname = "MozillaWindowClass"titlename = "百度一下,你就知道 - Mozilla Fire...
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章