你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

emwin的窗口管理和窗口之间的消息传递

[复制链接]
bl2019 提问时间:2019-9-7 11:01 /
emwin的窗口管理
hWinBase = WM_CreateWindow(0,  0, 480, 320, WM_CF_SHOW, _cbDummy, 0);

创建window界面后,
static void _cbDummy(WM_MESSAGE* pMsg){
    int Id, NCode;
    WM_HWIN hWin, hItem;
    char buffer[6];
    hWin = pMsg->hWin;
    switch (pMsg->MsgId) {
      case WM_CREATE:
        break;
      case WM_TIMER:
        break;
      case WM_PAINT:
        create_basePage();  //每次都重绘背景和标题
        break;

      case WM_NOTIFY_PARENT://处理按钮相应事件
        Id = WM_GetId(pMsg->hWinSrc);
        NCode = pMsg->Data.v;
        switch(Id) {
        case ID_BUTTON_0:  //设置
            switch(NCode) {
              case WM_NOTIFICATION_CLICKED:
                break;
              case WM_NOTIFICATION_RELEASED:
               //创建子页面  功能设置界面
               hWinSet = WM_CreateWindowAsChild(0, 52, 379, 267, hWinBase, WM_CF_SHOW, _cbSetView, 0);
              break;
          }
        case ID_BUTTON_1:  //返回
            switch(NCode) {
              case WM_NOTIFICATION_CLICKED:
                break;
              case WM_NOTIFICATION_RELEASED:
               WM_DeleteWindow(hWinSet);
              break;
          }
       break;

    default:
        WM_DefaultProc(pMsg);
        break;
    }
}

问题是:
1.window创建的时候,界面初始化应该放在 case WM_CREATE:下面吗?
放在WM_CREATE下面后,按钮无效,如果部分静态的放在create下面,按钮显示之类的放在paint下面。可以使用,但是静态的文字会穿透到子页面上。全部放在paint下面时,不会 有这种问题,但是出现了问题2
2.子页面的数据怎么传递到父窗口上
要用WM_SendMessage,但是传过去的数据被paint刷新掉了

有没有这方面相关的实例啊,最好是源代码,谢谢!

收藏 1 评论2 发布时间:2019-9-7 11:01

举报

2个回答
bl2019 回答时间:2019-9-7 11:20:53
搞这个需不需要回去学一下MFC啊
bl2019 回答时间:2019-9-11 16:14:37
不传了,结贴了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版