OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9725|回复: 7

EMWIN框架窗口小工具加滚动条

[复制链接]

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2017-12-21
在线时间
42 小时
发表于 2018-11-1 17:51:13 | 显示全部楼层 |阅读模式
1金钱
EMWIN框架窗口小工具加滚动条后,滚动条动了但是窗口没有动static const GUI_WIDGET_CREATE_INFO _aDialogSpinbox[] = {
  { FRAMEWIN_CreateIndirect, "channel",           0,                 0,  0, 240, 320, 0, 0, 0 },
  { TEXT_CreateIndirect,     "channel",        GUI_ID_TEXT0,       5, 0, 40,  21, 0, 0, 0 },
  { SPINBOX_CreateIndirect,  NULL,                GUI_ID_SPINBOX0, 5, 15,  40,  21, 0, 0, 0 },
  { SPINBOX_CreateIndirect,  NULL,                GUI_ID_SPINBOX1, 5, 40,  40,  21, 0, 0, 0 },
  { TEXT_CreateIndirect,     "name",        GUI_ID_TEXT1,         50, 0, 40,  21, 0, 0, 0 },
  { EDIT_CreateIndirect,      NULL,            GUI_ID_EDIT0,      50, 15, 50,  21, 0, 0, 0  },
  { EDIT_CreateIndirect,      NULL,            GUI_ID_EDIT1,      50, 40, 50,  21, 0, 0, 0  },
  { TEXT_CreateIndirect,     "SIGNAL",        GUI_ID_TEXT2,       115, 0, 40,  21, 0, 0, 0 },
  { DROPDOWN_CreateIndirect,  NULL,           GUI_ID_DROPDOWN0,   115, 15, 40,  65, DROPDOWN_CF_AUTOSCROLLBAR},
  { DROPDOWN_CreateIndirect,  NULL,           GUI_ID_DROPDOWN1,   115, 40, 40,  65, DROPDOWN_CF_AUTOSCROLLBAR},
  { TEXT_CreateIndirect,     "TYPE",        GUI_ID_TEXT3,       165, 0, 40,  21, 0, 0, 0 },
  { DROPDOWN_CreateIndirect,  NULL,           GUI_ID_DROPDOWN2,   165, 15, 40,  65, DROPDOWN_CF_AUTOSCROLLBAR},
  { DROPDOWN_CreateIndirect,  NULL,           GUI_ID_DROPDOWN3,   165, 40, 40,  65, DROPDOWN_CF_AUTOSCROLLBAR},
  { TEXT_CreateIndirect,     "signal",        GUI_ID_TEXT4,       215, 0, 40,  21, 0, 0, 0 },
  { TEXT_CreateIndirect,     "",        GUI_ID_TEXT5,       265, 0, 40,  21, 0, 0, 0 },
  //{ SCROLLBAR_CreateIndirect, NULL,            GUI_ID_SCROLLBAR0, 240, 180,  70,  15, 0 },
};

static void _cbClient(WM_MESSAGE * pMsg) {
  WM_HWIN     hItem;

  int         Value;
  int         NCode;
  int         Id;
  int         i;
  switch (pMsg->MsgId)
  {
  case WM_INIT_DIALOG:
    FRAMEWIN_SetFont(pMsg->hWin, GUI_FONT_16B_ASCII);
    FRAMEWIN_SetSkin(pMsg->hWin, FRAMEWIN_SKIN_FLEX);
        SCROLLBAR_SetWidth(SCROLLBAR_CreateAttached(pMsg->hWin,SCROLLBAR_CF_VERTICAL),16);
        //hScroll = SCROLLBAR_CreateAttached(pMsg->hWin, 0);
  //SCROLLBAR_SetNumItems(hScroll, 48 *6);
  //SCROLLBAR_SetPageSize(hScroll, 220);
    hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT0);
    TEXT_SetTextAlign(hItem, GUI_TA_VCENTER | GUI_TA_RIGHT);
        hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT1);
    TEXT_SetTextAlign(hItem, GUI_TA_VCENTER | GUI_TA_RIGHT);
        hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT2);
    TEXT_SetTextAlign(hItem, GUI_TA_VCENTER | GUI_TA_RIGHT);
        hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT3);
    TEXT_SetTextAlign(hItem, GUI_TA_VCENTER | GUI_TA_RIGHT);
                hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT4);
    TEXT_SetTextAlign(hItem, GUI_TA_VCENTER | GUI_TA_RIGHT);
                hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_TEXT5);
    TEXT_SetTextAlign(hItem, GUI_TA_VCENTER | GUI_TA_RIGHT);
    hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_SPINBOX0);
    SPINBOX_SetSkin(hItem, SPINBOX_SKIN_FLEX);
    hEdit = SPINBOX_GetEditHandle(hItem);
    EDIT_SetDecMode(hEdit, 1, 1, 32, 0, 0);
    hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_SPINBOX1);
    SPINBOX_SetSkin(hItem, SPINBOX_SKIN_FLEX);
    hEdit = SPINBOX_GetEditHandle(hItem);
    EDIT_SetDecMode(hEdit, 1, 1, 32, 0, 0);
        hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_EDIT0);
    EDIT_SetText(hItem, "edit");
    EDIT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
        hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_EDIT1);
    EDIT_SetText(hItem, "edit");
    EDIT_SetTextAlign(hItem, GUI_TA_LEFT | GUI_TA_VCENTER);
        hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_DROPDOWN0);
        DROPDOWN_SetAutoScroll(hItem,1);
        DROPDOWN_AddString(hItem, "VOL");
        DROPDOWN_AddString(hItem, "CUR");
        hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_DROPDOWN1);
        DROPDOWN_SetAutoScroll(hItem,1);
        DROPDOWN_AddString(hItem, "VOL");
        DROPDOWN_AddString(hItem, "CUR");
        hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_DROPDOWN2);
        DROPDOWN_SetAutoScroll(hItem,1);
        /*
            for (i = 0; i < 10; i++) {
        char acBuffer[] = {"x"};
        acBuffer[0] = '1' + i;
        DROPDOWN_AddString(hItem, acBuffer);
      }
          */
                DROPDOWN_AddString(hItem, "FLOW");
        DROPDOWN_AddString(hItem, "PRE");
        DROPDOWN_AddString(hItem, "WAVE");
        hItem = WM_GetDialogItem(pMsg->hWin, GUI_ID_DROPDOWN3);
        DROPDOWN_SetAutoScroll(hItem,1);
        /*
        for (i = 0; i < 10; i++) {
        char acBuffer[] = {"x"};
        acBuffer[0] = '1' + i;
        DROPDOWN_AddString(hItem, acBuffer);
      }
*/
        DROPDOWN_AddString(hItem, "FLOW");
        DROPDOWN_AddString(hItem, "PRE");
        DROPDOWN_AddString(hItem, "WAVE");
    break;
  case WM_NOTIFY_PARENT:
    NCode = pMsg->Data.v;
         Id    = WM_GetId(pMsg->hWinSrc);
    switch(Id) {
        case GUI_ID_SPINBOX0:
                switch (NCode) {
    case WM_NOTIFICATION_VALUE_CHANGED:
        Value = SPINBOX_GetValue(pMsg->hWinSrc);
        break;
                }
         case GUI_ID_SPINBOX1:
                switch (NCode) {
    case WM_NOTIFICATION_VALUE_CHANGED:
        Value = SPINBOX_GetValue(pMsg->hWinSrc);
        break;
                }
      break;
         case GUI_ID_EDIT0:
        switch (NCode) {
    case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)                               
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:

        break;
      case WM_NOTIFICATION_VALUE_CHANGED:

        break;
                }
      break;
                   case GUI_ID_EDIT1:
        switch (NCode) {
    case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)                               
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:

        break;
      case WM_NOTIFICATION_VALUE_CHANGED:

        break;
                }
      break;
           case GUI_ID_DROPDOWN0:
        switch (NCode) {
    case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)                               
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:

        break;
      case WM_NOTIFICATION_VALUE_CHANGED:

        break;
                }
      break;
          case GUI_ID_DROPDOWN1:
        switch (NCode) {
    case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)                               
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:

        break;
      case WM_NOTIFICATION_VALUE_CHANGED:

        break;
                }
      break;
           case GUI_ID_DROPDOWN2:
        switch (NCode) {
    case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)                               
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:

        break;
      case WM_NOTIFICATION_VALUE_CHANGED:

        break;
                }
      break;
           case GUI_ID_DROPDOWN3:
        switch (NCode) {
    case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)                               
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:

        break;
      case WM_NOTIFICATION_VALUE_CHANGED:

        break;
                }
      break;
           break;
          
        }
       
    break;
  case WM_PAINT:
    GUI_SetBkColor(0xAE9E8D);
    GUI_Clear();
    break;
  default:
    WM_DefaultProc(pMsg);
}

}


void MainTask(void) {
        WM_HWIN  hScroll;
           GUI_RECT RectDlg;
  GUI_RECT RectClient;
        GUI_Init();
GUI_CreateDialogBox(_aDialogSpinbox, GUI_COUNTOF(_aDialogSpinbox), _cbClient,WM_HBKWIN,  30,  60);

  while (1) {
    GUI_Delay(100);
  }
}




QQ截图20181101173847.png
QQ截图20181101173847.png

最佳答案

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
110
金钱
110
注册时间
2017-12-21
在线时间
42 小时
 楼主| 发表于 2018-11-1 17:51:14 | 显示全部楼层
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-11-3 03:15:29 | 显示全部楼层
帮顶
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
13
金钱
13
注册时间
2019-8-20
在线时间
4 小时
发表于 2019-8-29 17:27:34 | 显示全部楼层
楼主怎么解决的?
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2020-7-7
在线时间
3 小时
发表于 2020-7-21 18:26:30 | 显示全部楼层
咋解决的,楼主
回复

使用道具 举报

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2020-7-23
在线时间
33 小时
发表于 2020-8-23 20:53:55 | 显示全部楼层
楼主怎么解决的?
回复

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2019-8-21
在线时间
7 小时
发表于 2021-7-22 15:53:31 | 显示全部楼层
楼主给个提示吧
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2016-12-20
在线时间
39 小时
发表于 2021-11-23 17:11:30 | 显示全部楼层
是的,咋解决的呢?????
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 10:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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