硬汉嵌入式论坛

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

[emWin] 在父窗口回调函数中使用WM_HideWindow隐藏子窗口,无效。

[复制链接]

45

主题

70

回帖

205

积分

高级会员

积分
205
发表于 2019-9-26 09:32:54 | 显示全部楼层 |阅读模式
本帖最后由 chinashaoshu 于 2019-9-26 09:56 编辑
  1. void _cb_GPSWindow(WM_MESSAGE* pMsg)
  2. {
  3.         GUI_RECT Rect;
  4.         switch (pMsg->MsgId)
  5.         {
  6.                 case WM_CREATE:
  7.                 {
  8.                         GPS_DATA_Win = WM_CreateWindowAsChild(3,38,198,238,GPS_Win,WM_CF_HIDE,_cb_b1gdata_Window,0);
  9.                        GUI_JPEG_GetInfo(_acwait_signal, sizeof(_acwait_signal), &waitsignal_JpegInfo);
  10.                         waitsignal_hMemJPEG = GUI_MEMDEV_CreateEx(0, 0, waitsignal_JpegInfo.XSize, waitsignal_JpegInfo.YSize, GUI_MEMDEV_HASTRANS);
  11.                         GUI_MEMDEV_Select(waitsignal_hMemJPEG);
  12.                         GUI_JPEG_Draw(_acwait_signal, sizeof(_acwait_signal), 0, 0);
  13.                         GUI_MEMDEV_Select(0);
  14.                 }break;
  15.                 case WM_PAINT:
  16.                 {               
  17.                                  /******画窗口背景******/
  18.                            WM_GetClientRect(&Rect);
  19.                                  GUI_SetColor(GUI_BACKGROUND);
  20.                      GUI_FillRect(Rect.x0, Rect.y0, Rect.x1, Rect.y1);
  21.                                  /******边框******/
  22.                                  GUI_SetColor(GUI_292C);
  23.                      GUI_SetPenSize(2);
  24.                      GUI_AA_DrawRoundedRect(0,3,194,229,4);

  25.                                 if((b1g_data.b1g_valid == 'A')||(b1g_data.b1g_valid == 'W'))
  26. {
  27. /*一些常规2D图形绘制操作*/
  28.                                         WM_ShowWindow(GPS_DATA_Win);//show 数据子窗口
  29.                                 }
  30.                                 else
  31.                                 {
  32.                                         WM_HideWindow(GPS_DATA_Win); //hide 数据子窗口
  33.                                         /* 显示 JPEG 图片 */
  34.                                         GUI_MEMDEV_WriteAt(waitsignal_hMemJPEG, 10, 80);
  35.                                 }               
  36.                         }break;
  37.                 case WM_B1G_UPDATE:
  38.                 {
  39.                         WM_InvalidateWindow(pMsg->hWin);
  40.                         GUI_Exec();
  41.                 }
  42.                 break;
  43.                 default:
  44.                         WM_DefaultProc(pMsg);
  45.                 break;
  46.         }
  47. }
  48. void GPS_Win_Init(void)
  49. {
  50.         GPS_Win = WM_CreateWindow(3,38,195,230,WM_CF_SHOW,_cb_GPSWindow,0);<font color="#ff0000">//创建窗口</font>
  51. }
复制代码
请问硬汉和各路大神,我应该是哪里处理不当,隐藏了子窗口,但是还是显示着啊。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117619
QQ
发表于 2019-9-26 10:02:57 | 显示全部楼层
隐藏操作不在WM_PAINT里面做,单独找个地方操作一次,是否正常。
回复

使用道具 举报

45

主题

70

回帖

205

积分

高级会员

积分
205
 楼主| 发表于 2019-9-26 10:12:55 | 显示全部楼层
eric2013 发表于 2019-9-26 10:02
隐藏操作不在WM_PAINT里面做,单独找个地方操作一次,是否正常。

正常了!!!!感谢!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-18 22:19 , Processed in 0.037401 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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