硬汉嵌入式论坛

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

[emWin] 获取当前窗口句柄总是不对

[复制链接]

1

主题

3

回帖

6

积分

新手上路

积分
6
发表于 2019-10-10 17:53:59 | 显示全部楼层 |阅读模式
模仿硬汉的哪个移动桌面can例程:我使用的是外部键盘 没有触摸和鼠标
创建1个带图标的桌面,然后可以正常打开各个子窗口; 使用
                hWin1=WM_GetFocussedWindow();
                hWin2=WM_GetActiveWindow();
函数观测
发现:hwin2始终=0x02;hWin1是跳变的 每次进入同一个子窗口都不一样;  而且也都不等于我设置的句柄

debug发现 我建立的   hMOtion=0x01;   hWinAlarm=0x0D    这连个句柄我都设置为了全局变量;
怎么才能正确获得这两个句柄呢?


1 建立主界面(我只用了一个界面)

        hMotion = WM_CreateWindowAsChild
                                                                                (0,                            0,          SCREEN_Width,  SCREEN_Height,    WM_HBKWIN,  WM_CF_SHOW | WM_CF_HASTRANS,  _cbMotion,  0);
       
        /* 界面图标 */
        hIcon1 = _CreateICONVIEW(hMotion,                    _aBitmapItem,         GUI_COUNTOF(_aBitmapItem),         GUI_ID_ICONVIEW0,         ICONVIEW_LBorder,         ICONVIEW_TBorder,         ICONVIEW_Width, ICONVIEW_Height*2);



2 其中一个子界面
   void App_Alarm(WM_HWIN hWin) {
                 hWinAlarm = GUI_CreateDialogBox(_aDialogCreateAlarm, GUI_COUNTOF(_aDialogCreateAlarm), _cbAlarm, hWin, 0, 0);
                   }
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2019-10-10 23:11:46 | 显示全部楼层
找到问题所在;  WM_GetFocussedWindow();得到的是子窗口的第一个小工具的句柄;不知道如何得到窗口的句柄呢

case WM_INIT_DIALOG:
WM_SetFocus(hWin);
加上这一句得到的依然是子窗口的第一个小工具的句柄
回复

使用道具 举报

1

主题

3

回帖

6

积分

新手上路

积分
6
 楼主| 发表于 2019-10-11 00:00:19 | 显示全部楼层
暂时把 子窗口的第一个小工具的句柄 变成全局变量;通过判断小工具句柄和 WM_GetFocussedWindow()一致 来视为打开了所需窗口;

期待能有争取的方式
回复

使用道具 举报

2

主题

3

回帖

9

积分

新手上路

积分
9
发表于 2019-10-11 09:57:24 | 显示全部楼层
用WM_GetDialogItem();
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-18 20:26 , Processed in 0.035076 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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