请教 设置按钮快捷键
我想现实 按A键(最好是Page Up键)时 等同是点击cb_1
尝试下面两种方法,还是没能解决
第一种
窗口下新建一pbm_dwnkey 事件
if key=keyD! then
cb_1.triggerevent(clicked!)
end if
第二种方法:
1.声明 API的外部函数
function long SendMessageA(long lhWnd,uint uiMsg,long lwMsg,long lwParam) library 'user32.dll'
2.对常量赋初值
Public:
Constant Long WM-SETHOTKEY=50//设置热键信息值
Constant Long HK-MYHOTKEY=1648 //热键参数值
Constant Long SC-HOTKEY=61776//PB中的热键信息
其中,HK-MYHOTKEY不是固定的,它根据用户的需要而定。它的具体值的确定方法是:高8位字节与低8位字节组成16位字节,然后将它换算成十进制数,即得到所需的HK-MYHOTKEY值。高8位字节值为一些辅助键(Control、Alt、Shift等),低8位字节为使用键的ASCII码。如果我们要使用Ctrl+Alt+A作为热键,则A=65,转换成十六进制为41,Ctrl+Alt=2+4=6,转换成十六进制仍然是6,两则组合即为641,再重新转换回十进制得到1601;同样,如果我们用Ctrl+Alt+F1作为热键,F1=112,可以得到HK-MYHOTKEY值应为1648。
3.利用代码告诉窗口我们的热键
//在窗口的Open事件中
long ll-RC
ll-RC = SendMessageA(Handle(this), WM-SETHOTKEY, HK-MYHOTKEY, 0)
if ll-RC <> 1 then
messagebox("错误","错误信息")
end if
4.编写按下热键时的处理程序
//在窗口的Other事件中
IF wparam = SC-HOTKEY THEN
cb_1.triggerevent(clicked!)
END IF