wc3mf 发表于 2007-7-18 14:58:16

一个关于ghook使用的疑问

ghook(GUI *data, int cmd)

一个常见的函数,与onkey(GUI *data, GUI_MSG *msg)放在一起。
想问各位,这个函数在中起什么作用?cmd是如何得到的?
最重要的是,这个函数能否决定GUI的按键定义?
能否在onkey函数外自定义GUI的按键定义?

wc3mf 发表于 2007-7-24 14:57:51

放了一个礼拜,还是没人肯出手相助

swat_lc 发表于 2007-7-31 20:27:48

我乱谈一点,ghook应该是处理消息的,主要是些非按键消息,像自定义命令、窗口的创建销毁等。Onkey自然就是按键消息了。所以,可以参考swilib.h里一些MSG_XXX之类的消息,就是cmd可以取得值。

wc3mf 发表于 2007-7-31 22:16:13

MSG_XXX类的是CMD可以使用的值???不像啊,很多例子里的CMD值都是十进制的,而且都很小,而MSG_的值都是很大的十六进制

向SWAT_LC问一个问题,如何在MD的短信编辑界面中,当按到红键取消编辑时先出现确认,得到确认后在进行退出

swat_lc 发表于 2007-7-31 22:30:37

我觉得像,也不一定了.大小倒不是问题,可能值比较大的是系统定义的吧!
你说的那个问题,我不太确定你说的难点在哪,我没弄过MD的编辑短信。应该是在OnKey里判断红键的按下,根据MessageBox返回的确认,return不同的值,决定是否退出。具体返回0还是1让MD不退出我忘了。我知道的就这么多。

wc3mf 发表于 2007-8-2 16:25:13

谢谢你的回答。
那个函数是MsgBoxOkCancel,我是会用一些,就是和按键的配合上有些不如意的问题,导致不能达到目的,其中一个很大的问题就是:若在onkey中自定义了红键,那么该编辑界面下原系统的红键定义就完完全全被取代,包括在拼音的选字状态,这个是我不想看到的。

还有一个问题,就是DrawScrollString这个函数,不知道你使用过了没有,我发现若使用7号字(也就是小号的汉字)时,滚动的字符的最底下的一行像素是缺的,而其他字号或英文、数字就没有问题

along1976 发表于 2007-8-2 16:49:26

DrawScrollString在使用小号字体SMALL_FONT(S65下为7或8)时,确实是最下面的象素有缺失。
我想应该是系统实现的问题。

swat_lc 发表于 2007-8-2 19:22:01

回复 #6 wc3mf 的帖子

红键的问题只能靠判断输入框的状态,不知道具体怎么检测,可能是检测输入框结构的某个值,也可能是用什么GetStatus之类的函数。猜测而已....

wc3mf 发表于 2007-8-4 23:39:32

是啊,就是不知道如何确定是否正在选字的状态,翻遍了swilib.h,也没有像的,有个叫 int EDIT_IsBusy(void *gui) 的,名称挺象,试了,结果不是。
没办法,现在只能是不管是不是选字状态,按下绿键或右软键都显示请求确认是否发出短信的对话,总好过按下确定,却变成关闭来的好。


DrawScrollString 的这个问题搞得都不能用它。


还有一个问题,你们知道如何使用组合键来实现一个任务吗(按住一个键不放的同时再按下另一个键,就像电脑的Ctrl+C等)?以前的XTask的呼出就是可以使用这种组合键的,现在的XTask就都是单键的了。

[ 本帖最后由 wc3mf 于 2007-8-4 23:48 编辑 ]
页: [1]
查看完整版本: 一个关于ghook使用的疑问