硬汉嵌入式论坛

 找回密码
 立即注册
查看: 5169|回复: 12
收起左侧

[emWin] 窗口小工具焦点切换

[复制链接]

13

主题

19

回帖

58

积分

初级会员

积分
58
发表于 2015-1-29 18:16:24 | 显示全部楼层 |阅读模式
从资源表创建小工具,和直接创建有什么区别??

我分别用 BUTTON_CreateIndirect() 和 BUTTON_CreateEx() 来创建按钮,第一个不能切换焦点,而第二个可以切换的,这是为什么??


求解。。。。。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2015-1-29 21:26:39 | 显示全部楼层
可以的,楼主可以看一下我以前做的ATM机例子:https://forum.anfulai.cn/forum.php?mod=viewthread&tid=2932,有视频演示。
回复

使用道具 举报

13

主题

19

回帖

58

积分

初级会员

积分
58
 楼主| 发表于 2015-1-29 23:10:33 | 显示全部楼层
没找到,所以的能切换焦点的小工具都是放在 DialogBox  资源表里的,对于CreateWindow 里的小工具焦点还是没法切换
回复

使用道具 举报

13

主题

19

回帖

58

积分

初级会员

积分
58
 楼主| 发表于 2015-1-29 23:11:10 | 显示全部楼层

回 eric2013 的帖子

eric2013:可以的,楼主可以看一下我以前做的ATM机例子:https://forum.anfulai.cn/forum.php?mod=viewthread&tid=2932,有视频演示。 (2015-01-29 21:26) 
没找到,所以的能切换焦点的小工具都是放在 DialogBox  资源表里的,对于CreateWindow 里的小工具焦点还是没法切换。。。
回复

使用道具 举报

6

主题

32

回帖

6

积分

新手上路

积分
6
发表于 2015-1-29 23:17:41 | 显示全部楼层
我猜,你是父窗口的句柄的问题。
回复

使用道具 举报

13

主题

19

回帖

58

积分

初级会员

积分
58
 楼主| 发表于 2015-1-29 23:53:19 | 显示全部楼层

回 true_casey 的帖子

true_casey:我猜,你是父窗口的句柄的问题。 (2015-01-29 23:17) 
用对话框的资源表创建小工具才能支持各种按键切换焦点,其他的好像不行,我不知道怎么弄
回复

使用道具 举报

356

主题

2180

回帖

3253

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3253
发表于 2015-1-30 11:43:23 | 显示全部楼层

回 xieyoub 的帖子

xieyoub:用对话框的资源表创建小工具才能支持各种按键切换焦点,其他的好像不行,我不知道怎么弄 (2015-01-29 23:53) 
把你创建小工具的函数写出来看看?
估计是创建的时候,父窗口没有设定准确。
回复

使用道具 举报

13

主题

19

回帖

58

积分

初级会员

积分
58
 楼主| 发表于 2015-1-30 11:55:13 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:把你创建小工具的函数写出来看看?
估计是创建的时候,父窗口没有设定准确。 (2015-01-30 11:43) 
这是我创建的窗口_hLastFrame = WM_CreateWindowAsChild(0, 0, 800, 480, WM_HBKWIN, WM_CF_SHOW, &_cbWindow_1, 0);
然后我在窗口的回调函数里创建小工具
void _cbWindow_1(WM_MESSAGE* pMsg)
{
    WM_HWIN hWin = pMsg->hWin;
    switch (pMsg->MsgId)
    {
        case WM_CREATE:
            WM_SetFocus(hWin);
            BUTTON_CreateEx(55,220,100,30,hWin,WM_CF_SHOW,0,GUI_ID_OK);
            BUTTON_CreateEx(55,300,100,30,hWin,WM_CF_SHOW,0,GUI_ID_CANCEL);
        break;
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117546
QQ
发表于 2015-1-30 12:07:28 | 显示全部楼层

回 xieyoub 的帖子

xieyoub:没找到,所以的能切换焦点的小工具都是放在 DialogBox  资源表里的,对于CreateWindow 里的小工具焦点还是没法切换。。。 (2015-01-29 23:11) 
有的,要不你看这里吧,方便些:https://forum.anfulai.cn/forum.php?mod=viewthread&tid=5595
有视频演示,支持全按键操作。
回复

使用道具 举报

356

主题

2180

回帖

3253

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3253
发表于 2015-1-30 14:14:58 | 显示全部楼层

回 xieyoub 的帖子

xieyoub:这是我创建的窗口_hLastFrame = WM_CreateWindowAsChild(0, 0, 800, 480, WM_HBKWIN, WM_CF_SHOW, &_cbWindow_1, 0);
然后我在窗口的回调函数里创建小工具
void _cbWindow_1(WM_MESSAGE* pMsg)
{
....... (2015-01-30 11:55) 
看起来没有问题。
可以试试把WM_SetFocus(hWin)放到button创建之后。
回复

使用道具 举报

13

主题

19

回帖

58

积分

初级会员

积分
58
 楼主| 发表于 2015-1-30 14:21:58 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:看起来没有问题。
可以试试把WM_SetFocus(hWin)放到button创建之后。

 (2015-01-30 14:14) 
不行, 还是不能切换小工具上的焦点,好像是对话框本来就有支持一些Tab等按键,而窗口并没有
回复

使用道具 举报

356

主题

2180

回帖

3253

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3253
发表于 2015-1-30 15:23:59 | 显示全部楼层

回 xieyoub 的帖子

xieyoub:不行, 还是不能切换小工具上的焦点,好像是对话框本来就有支持一些Tab等按键,而窗口并没有 (2015-01-30 14:21) 
使用: BUTTON_SetFocussable()

然后把焦点强行设置到上面WM_SetFocus(),应该可以把。
回复

使用道具 举报

13

主题

19

回帖

58

积分

初级会员

积分
58
 楼主| 发表于 2015-1-30 15:38:57 | 显示全部楼层

回 caicaptain2 的帖子

caicaptain2:使用: BUTTON_SetFocussable()

然后把焦点强行设置到上面WM_SetFocus(),应该可以把。 (2015-01-30 15:23) 
这个应该可以,就是麻烦了点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-14 01:11 , Processed in 0.047765 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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