用VC++小程序(即使该程序没有焦点)如何响应所有的键盘输入

用VC++小程序(即使该程序没有焦点)如何响应所有的键盘输入,第1张

用不到HOOK

可以使用RegisterHotKey注册一个全局的热键

例如一个对话框程序

在OnInitDialog中添加注册热键的代码:

RegisterHotKey(GetSafeHwnd(),1001,NULL,VK_F2);//F2键

RegisterHotKey(GetSafeHwnd(),1002,MOD_ALT,'1');//Alt+1键

BEGIN_MESSAGE_MAP(CXXXDlg, CDialog)

END_MESSAGE_MAP()

中添加WM_HOTKEY的消息映射:

ON_MESSAGE(WM_HOTKEY,OnHotKey)//快捷键消息映射手动加入

在头文件中添加OnHotKey的声明:

protected:

afx_msg LONG OnHotKey(WPARAM wParam,LPARAM lParam);//手动加入

CPP中OnHotKey的实现代码:

//相应快捷键的消息映射

LONG CXXXDlg::OnHotKey(WPARAM wParam,LPARAM lParam)

{

if(wParam ==1001)

{

MessageBox("热键F2已经按下!");

//这里可以加上你按钮要执行的 *** 作,或者直接调用按钮映射的消息函数

}

else if (wParam==1002)

{

MessageBox("热键ALT+1已经按下!");

}

return 0;

}

关闭对话框时使用

UnregisterHotKey(GetSafeHwnd(),1001);//注销F2键

UnregisterHotKey(GetSafeHwnd(),1002);//注销Alt+1键

注销热键

328 icePub_copyFiles

l 函数原型:

int WINAPI icePub_copyFiles(char strFromPath,char strToPath)

输入:strFromPath 源路径名

strToPath 目标路径名

输出:

VC sample代码:

int copyFiles(char strFromPath,char strToPath)

{

typedef int (WINAPI ICEPUB_COPYFILES)(char strFromPath,char strToPath);

ICEPUB_COPYFILES icePub_copyFiles = 0;

HINSTANCE hDLLDrv = LoadLibrary("icePubDlldll");

if(hDLLDrv)

{

icePub_copyFiles = (ICEPUB_COPYFILES )GetProcAddress(hDLLDrv, "icePub_copyFiles");

}

if(icePub_copyFiles)

icePub_copyFiles(strFromPath,strToPath);

if(hDLLDrv)

FreeLibrary(hDLLDrv);

return 0;

}

copyFiles("c:\\program files\\iceIE\\","D:\\tools\\");

>

向对话框上加可能在对话框里加个OnPaint()函数,把用刷新画笔刷到对话框上就行了。

向按钮上加就更简单了,你把按钮的控制类改成CBitmapButton再用LoadBitmap一下就行了。

细节你看下MSDN吧,或者给我发信息。

以上就是关于用VC++小程序(即使该程序没有焦点)如何响应所有的键盘输入全部的内容,包括:用VC++小程序(即使该程序没有焦点)如何响应所有的键盘输入、用VC++开发一个小程序,关于文件夹复制。、我想用VC(MFC)写个小程序,但不知道怎么给对话框和按钮添加图片等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10178191.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存