搜索
aardio官方社区 门户 查看主题

关于在程序中加入快捷键的问题

发布者: zhuyuruicu | 发布时间: 2011-5-31 11:21| 查看数: 7921| 评论数: 9|帖子模式

现在能够使用alt的加入方法了,但是类似ctrl+F的快捷键怎么添加谁有思路啊,不要说开多线程,呵呵,附成功代码,给比我还菜的菜鸟看看

import win.ui;

import win.ui.menu;
/*DSG{{*/
var winform = win.form(parent=...; text="aardio Form";right=349;bottom=249 )
winform.add(  )

/*}}*/



winform.helpmenu = win.ui.popmenu(winform);
//创建弹出菜单

winform.helpmenu.add('帮助(&H&)',function(id){

     winform.msgbox(
"使用帮助")
});

winform.helpmenu.add();
//分隔线
winform.helpmenu.add('关于(&A&)',function(id){

     winform.msgbox(
"使用关于")
})

var menu = win.ui.menu(winform);//创建主菜单

menu.add('帮助(&H&)',winform.helpmenu)



winform.show()

win.loopMessage();
return winform;




最新评论

carl 发表于 2011-5-31 11:47:33

[size=2][color=#0000ff]import[/color][color=#000000] win.ui; [/color][color=#00

import win.ui;
/*DSG{{*/
var winform = win.form(parent=...; text="aardio Form";right=349;bottom=249 )
winform.add(  )
/*}}*/
io.open()
winform.reghotkey(
function(id,mod,vk){ //注册热键按 Ctrl+F
    if(win.getForeground()=winform.hwnd){
        io.print(
"收到快捷键命令")
    }
},0x2
/*_MOD_CONTROL*/,'F'
#)

winform.show()
win.loopMessage();


点评

不错,就是这样,谢了  发表于 2011-5-31 13:50
o00viw 发表于 2011-5-31 23:38:42

[quote][size=2][color=#999999]carl 发表于 2011-5-31 11:47[/color] [url=forum.php?mo

carl 发表于 2011-5-31 11:47
import win.ui;
/*DSG{{*/
var winform = win.form(parent=...; text="aardio Form";right=349;bottom=249 ...

这样问题虽然解决了,但毕竟会占用一个全局热键,终竟不是一个好办法。有更好的办法吗?
lujjjh 发表于 2011-6-8 22:09:11

[quote][size=2][color=#999999]o00viw 发表于 2011-5-31 23:38[/color] [url=forum.php?

o00viw 发表于 2011-5-31 23:38
这样问题虽然解决了,但毕竟会占用一个全局热键,终竟不是一个好办法。有更好的办法吗?

@zhuyuruicu
你的写法有些问题,应当是 帮助(&H),而不是 帮助(&H&)
& 符号表示将下一个字符设置为快捷键

@o00viw
至于o00viw提出的问题,可以用窗体的消息回调来处理:
import key;
import win.ui;
/*DSG{{*/
var winform = win.form(parent=...; text="aardio Form";right=349;bottom=249 )
winform.add(  )
/*}}*/

winform.wndproc =
function(hwnd,message,wparam,lparam){
   
select (message) {
        
case 0x100/*_WM_KEYDOWN*/ {
            
if (key.getState('CTRL') && wparam == 0x74/*_VK_F5*/) {
                win.msgbox(
"Ctrl+F5");
            }
        }
    }
}

winform.show();
win.loopMessage();


o00viw 发表于 2011-6-9 08:59:46

[quote][size=2][color=#999999]lujjjh 发表于 2011-6-8 22:09[/color] [url=forum.php?m

lujjjh 发表于 2011-6-8 22:09
@zhuyuruicu:
你的写法有些问题,应当是 帮助(&H),而不是 帮助(&H&)
& 符号表示将下一个字符设置为快 ...

谢谢,解决了一个长期遗留下来的问题。
fantasynew 发表于 2011-6-16 12:13:41

看帖子总有收获,这个问题正是我想知道的

看帖子总有收获,这个问题正是我想知道的
zhuyuruicu 发表于 2011-6-16 12:22:11

[quote][size=2][color=#999999]lujjjh 发表于 2011-6-8 22:09[/color] [url=forum.php?m

lujjjh 发表于 2011-6-8 22:09
@zhuyuruicu:
你的写法有些问题,应当是 帮助(&H),而不是 帮助(&H&)
& 符号表示将下一个字符设置为快 ...

无语,我试过&H,在我电脑上不管事,但改成&H&就管事了,不知道为什么

点评

“无语”神论  发表于 2011-6-17 14:29
sj798 发表于 2012-1-24 20:19:52

谢谢帖子解决问题,顶

谢谢帖子解决问题,顶
alin999 发表于 2012-1-26 09:38:30

我的问题还没解决

我的问题还没解决
aardi 发表于 2017-9-9 07:40:50
carl 发表于 2011-5-31 11:47
import win.ui;
/*DSG{{*/
var winform = win.form(parent=...; text="aardio Form";right=349;bottom=24 ...

加入前台判断来解决似乎更简洁,但是试了一下,这样会使其他程序的相同热键失效

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2017-9-22 07:05 , Processed in 0.265625 second(s), 26 queries , Wincache On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表