ZKX's LAB

vc 响应键盘输入 vc中如何响应键盘和鼠标事件

2021-04-23知识11

用VC++小程序(即使该程序没有焦点)如何响应所有的键盘输入? 用不到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键注销热键

请问用VC或C#写软键盘 如何响应输入的内容? 最主要是令你软盘程序无有焦点就可以了,创建的软盘程序窗口应该有WS_EX_NOACTIVATE 风格,当拥有这个风格的窗口不会获得输入焦点,即使你按窗口上的按钮,此时的输入焦点还是会在之前的窗口上。示例程序下载(请不要直接使用迅雷下载)http://cid-3ba16e78a53d2d3d.office.live.com/self.aspx/VC%5EM%5EM/SoftKeyboard.zip部分主要代码:在对话框的OnInitDialog()里添加以下代码即可。BOOL CDemoDlg:OnInitDialog(){设置窗口无焦点define WS_EX_NOACTIVATE 0x08000000L/无焦点SetWindowLong(m_hWnd,GWL_EXSTYLE,GetWindowLong(m_hWnd,GWL_EXSTYLE)&~WS_EX_APPWINDOW|WS_EX_NOACTIVATE);SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,245,800,SWP_FRAMECHANGED|SWP_NOMOVE|SWP_NOSIZE);CDialog:OnInitDialog();SetIcon(m_hIcon,TRUE);Set big iconreturn TRUE;}

如何在VC控制台程序下实现键盘的响应 变了一个二进制转十进制的小程序,有一个问题解决不了,就是当输入二进制数的时候,应当只能从键盘上输入0和1,其它的一律不予相应,。

#vc维生素c1 号#vc 经典教程mfc#vc 响应键盘输入#p vc扣板长条教程#vc 画质二维码

随机阅读

qrcode
访问手机版