bl2019 发表于 2019-9-7 11:01:40

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

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;
    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刷新掉了

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

bl2019 发表于 2019-9-7 11:20:53

搞这个需不需要回去学一下MFC啊:dizzy:

bl2019 发表于 2019-9-11 16:14:37

不传了,结贴了:dizzy:
页: [1]
查看完整版本: emwin的窗口管理和窗口之间的消息传递