硬汉嵌入式论坛

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

[有问必答] MULTIPAGE 控件 不能实现啊·····

[复制链接]

8

主题

13

回帖

8

积分

新手上路

积分
8
发表于 2016-4-22 16:36:25 | 显示全部楼层 |阅读模式
#include "DIALOG.h"

/*********************************************************************
*
*       Defines
*
**********************************************************************
*/
#define ID_FRAMEWIN_0  (GUI_ID_USER + 0x00)
#define ID_MENU_0  (GUI_ID_USER + 0x01)


// USER START (Optionally insert additional defines)
// USER END

/*********************************************************************
*
*       Static data
*
**********************************************************************
*/

// USER START (Optionally insert additional static data)
// USER END

/*********************************************************************
*
*       _aDialogCreate
*/
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
  { FRAMEWIN_CreateIndirect, "Framewin", ID_FRAMEWIN_0, 0, -1, 480, 272, 0, 0x64, 0 },
  { MENU_CreateIndirect, "Menu", ID_MENU_0, 133, 51, 187, 38, 0, 0x0, 0 },
  // USER START (Optionally insert additional widgets)
  // USER END
};

static const GUI_WIDGET_CREATE_INFO _aDialogCreate1[] = {
{ WINDOW_CreateIndirect, "Dialog 1", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ BUTTON_CreateIndirect, "Button", GUI_ID_BUTTON0, 5, 30, 80, 20, 0},
{ TEXT_CreateIndirect, "Dialog 1", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate2[] = {{ WINDOW_CreateIndirect, "Dialog 2", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ CHECKBOX_CreateIndirect, "", GUI_ID_CHECK0, 5, 30, 0, 0, 0},
{ CHECKBOX_CreateIndirect, "", GUI_ID_CHECK1, 5, 50, 0, 0, 0},
{ TEXT_CreateIndirect, "Select 0", GUI_ID_TEXT0, 25, 30, 50, 15, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Select 1", GUI_ID_TEXT1, 25, 50, 50, 15, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Dialog 2", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate3[] = {
{ WINDOW_CreateIndirect, "Dialog 3", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ RADIO_CreateIndirect, "", GUI_ID_RADIO0, 5, 30, 0, 0, 0, 3},
{ TEXT_CreateIndirect, "Option 1", GUI_ID_TEXT0, 25, 30, 50, 15, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Option 2", GUI_ID_TEXT1, 25, 50, 50, 15, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Option 3", GUI_ID_TEXT2, 25, 70, 50, 15, TEXT_CF_LEFT },
{ TEXT_CreateIndirect, "Dialog 3", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate4[] = {
{ WINDOW_CreateIndirect, "Dialog 4", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ MULTIEDIT_CreateIndirect, "Text", GUI_ID_MULTIEDIT0, 5, 30, 200, 40 },
{ TEXT_CreateIndirect, "Dialog 4", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate5[] = {
{ WINDOW_CreateIndirect, "Dialog 5", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ SLIDER_CreateIndirect, "", GUI_ID_SLIDER0, 5, 30, 200, 40 },
{ TEXT_CreateIndirect, "Dialog 5", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
static const GUI_WIDGET_CREATE_INFO _aDialogCreate6[] = {
{ WINDOW_CreateIndirect, "Dialog 6", 0, 0, 0, 260, 100, FRAMEWIN_CF_MOVEABLE },
{ SCROLLBAR_CreateIndirect, "", GUI_ID_SCROLLBAR0, 5, 30, 200, 40 },
{ TEXT_CreateIndirect, "Dialog 6", 0, 5, 10, 50, 20, TEXT_CF_LEFT }
};
/*********************************************************************
*
* Static code
*
**********************************************************************
*/
/*********************************************************************
*
* _cbDialog4
*/
static void _cbDialog4(WM_MESSAGE * pMsg) {
WM_HWIN hItem;
WM_HWIN hDlg;
hDlg = pMsg->hWin;
switch (pMsg->MsgId) {
case WM_INIT_DIALOG:
hItem = WM_GetDialogItem(hDlg, GUI_ID_MULTIEDIT0);
MULTIEDIT_SetText(hItem, "MULTIEDIT widget");
MULTIEDIT_SetInsertMode(hItem, 1);
break;
default:
WM_DefaultProc(pMsg);
}
}

/*********************************************************************
*
*       Static code
*
**********************************************************************
*/

// USER START (Optionally insert additional static code)
// USER END

/*********************************************************************
*
*       _cbDialog
*/
static void _cbDialog(WM_MESSAGE * pMsg) {
  MENU_ITEM_DATA   ItemData;
  WM_HWIN          hItem;
  int              NCode;
  int              Id;
  // USER START (Optionally insert additional variables)
  // USER END

  switch (pMsg->MsgId) {
  case WM_INIT_DIALOG:
    //
    // Initialization of 'Framewin'
    //
    hItem = pMsg->hWin;
    FRAMEWIN_SetFont(hItem, GUI_FONT_32B_ASCII);
    FRAMEWIN_SetText(hItem, "armfly");
      FRAMEWIN_SetTextAlign(hItem, GUI_TA_HCENTER | GUI_TA_VCENTER);
    FRAMEWIN_SetTitleHeight(hItem, 30);

                FRAMEWIN_AddCloseButton(hItem, FRAMEWIN_BUTTON_RIGHT, 0);
                FRAMEWIN_AddMaxButton(hItem, FRAMEWIN_BUTTON_RIGHT, 1);
                FRAMEWIN_AddMinButton(hItem, FRAMEWIN_BUTTON_RIGHT, 2);
            FRAMEWIN_SetClientColor(hItem, GUI_GREEN);         // éèÖÃíêÑÕé« óDê±oúÆá
    //
    // Initialization of 'Menu'
    //
    hItem = WM_GetDialogItem(pMsg->hWin, ID_MENU_0);
    //  MULTIPAGE_AddEmptyPage(hItem, 0, "STM32-V5");
//    ItemData.Flags    = 0;
//    ItemData.hSubmenu = 0;
//    ItemData.Id       = 0;
//    ItemData.pText    = "STM32-V5";
//    MENU_AddItem(hItem, &ItemData);
//    ItemData.Flags    = 0;
//    ItemData.hSubmenu = 0;
//    ItemData.Id       = 1;
//    ItemData.pText    = "STM32-X3";
//    MENU_AddItem(hItem, &ItemData);
//    ItemData.Flags    = 0;
//    ItemData.hSubmenu = 0;
//    ItemData.Id       = 0;
//    ItemData.pText    = "STM32-V3";
//    MENU_AddItem(hItem, &ItemData);
        
        
        hItem = GUI_CreateDialogBox(_aDialogCreate1, GUI_COUNTOF(_aDialogCreate1), NULL, WM_UNATTACHED, 0, 0);

    //    MULTIPAGE_AddPage(hMultiPage, hDialog, &quotage 1");
        GUI_Delay(500);
        hItem = GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), NULL, WM_UNATTACHED, 0, 0);

    //    MULTIPAGE_AddPage(GUI_COUNTOF(_aDialogCreate), hItem, &quotage 2");
        GUI_Delay(500);
        hItem = GUI_CreateDialogBox(_aDialogCreate3, GUI_COUNTOF(_aDialogCreate3), NULL, WM_UNATTACHED, 0, 0);

        //MULTIPAGE_AddPage(hMultiPage, hDialog, &quotage 3");
        GUI_Delay(500);
        hItem = GUI_CreateDialogBox(_aDialogCreate4, GUI_COUNTOF(_aDialogCreate4), _cbDialog4, WM_UNATTACHED, 0, 0);

    //    MULTIPAGE_AddPage(hMultiPage, hDialog, &quotage 4");
        GUI_Delay(500);
        hItem = GUI_CreateDialogBox(_aDialogCreate5, GUI_COUNTOF(_aDialogCreate5), NULL, WM_UNATTACHED, 0, 0);

    //    MULTIPAGE_AddPage(hMultiPage, hDialog, &quotage 5");
        GUI_Delay(500);
        hItem = GUI_CreateDialogBox(_aDialogCreate6, GUI_COUNTOF(_aDialogCreate6), NULL, WM_UNATTACHED, 0, 0);

    //    MULTIPAGE_AddPage(hMultiPage, hDialog, &quotage 6");
        GUI_Delay(500);
//
// ???? MULTIPAGE_SetAlign ????
//
//MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_RIGHT);
//GUI_Delay(500);
//MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_RIGHT | MULTIPAGE_ALIGN_BOTTOM);
//GUI_Delay(500);
//MULTIPAGE_SetAlign(hMultiPage, MULTIPAGE_ALIGN_LEFT | MULTIPAGE_ALIGN_BOTTOM);
        
        
        
        
    // USER START (Optionally insert additional code for further widget initialization)
    // USER END
    break;
  case WM_NOTIFY_PARENT:
    Id    = WM_GetId(pMsg->hWinSrc);
    NCode = pMsg->Data.v;
    switch(Id) {
    case ID_MENU_0: // Notifications sent by 'Menu'
      switch(NCode) {
      case WM_NOTIFICATION_CLICKED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_RELEASED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      case WM_NOTIFICATION_VALUE_CHANGED:
        // USER START (Optionally insert code for reacting on notification message)
        // USER END
        break;
      // USER START (Optionally insert additional code for further notification handling)
      // USER END
      }
      break;
    // USER START (Optionally insert additional code for further Ids)
    // USER END
    }
    break;
  // USER START (Optionally insert additional message handling)
  // USER END
  default:
    WM_DefaultProc(pMsg);
    break;
  }
}

/*********************************************************************
*
*       Public code
*
**********************************************************************
*/
/*********************************************************************
*
*       CreateFramewin
*/
WM_HWIN CreateFramewin(void);
WM_HWIN CreateFramewin(void) {
  WM_HWIN hWin;

  hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
  return hWin;
}

/*********************************************************************
*
*       MainTask
*
**********************************************************************
*/
void MainTask(void)
{
    GUI_Init();
    WM_SetDesktopColor(GUI_WHITE);      /* Automacally update desktop window */
    WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */
    PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);
    PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
    BUTTON_SetDefaultSkin(BUTTON_SKIN_FLEX);
    CHECKBOX_SetDefaultSkin(CHECKBOX_SKIN_FLEX);
    DROPDOWN_SetDefaultSkin(DROPDOWN_SKIN_FLEX);
    SCROLLBAR_SetDefaultSkin(SCROLLBAR_SKIN_FLEX);
    SLIDER_SetDefaultSkin(SLIDER_SKIN_FLEX);
    HEADER_SetDefaultSkin(HEADER_SKIN_FLEX);
    RADIO_SetDefaultSkin(RADIO_SKIN_FLEX);
    CreateFramewin();
    while (1)
    {
        GUI_Delay(100);
    }
}
回复

使用道具 举报

8

主题

13

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2016-4-22 16:36:55 | 显示全部楼层
红色部分怎么弄啊  谢谢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107128
QQ
发表于 2016-4-23 00:55:46 | 显示全部楼层
好弄,参考官方的这个例子吧,还容易些:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=6041
回复

使用道具 举报

8

主题

13

回帖

8

积分

新手上路

积分
8
 楼主| 发表于 2016-4-26 15:45:36 | 显示全部楼层
谢谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 21:50 , Processed in 0.316976 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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