|

楼主 |
发表于 2014-9-20 10:41:19
|
显示全部楼层
回 eric2013 的帖子
eric2013:
1 先把游标显示出来,看看你的触摸屏能够触摸到那个地方吗。
2 另外你的动态内存可能设置的过小。
方便的话,把代码贴出来,贴这部分即可。  在工程中没有印象配置了动态内存,仍不清楚在那个地方配置,我把代码发给您看看,
也感谢您的建议。
这是MULTIPAGE小工具创建的代码,有其他地方的代码需要的您再给我说一声。
/* 头文件包含 */
#include"menuEmWin.h"
#include"multipage.h"
#include"framewin.h"
#include"WM.h"
/* 变量声明 */
/* 定义FRAMEWIN_SKINFLEX_PROPS 用来修改框架窗口外观 */
FRAMEWIN_SKINFLEX_PROPS pFrameOri; // <<------
/*
===============================================================================
-------------------------------------------------------------------------------
官方例程调试
===============================================================================
-------------------------------------------------------------------------------
*/
/* Part1 资源表 */
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 }
};
/* part2 各类回调函数 */
/*********************************************************************
*
* _cbFrameWin
框架窗口小工具回调函数
*
* Purpose:
* Callback routine of the frame window behind the MULTIPAGE widget
*/
static void _cbFrameWin(WM_MESSAGE* pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
GUI_SetBkColor(GUI_GREEN);
GUI_Clear();
break;
default:
WM_DefaultProc(pMsg);
}
}
/*********************************************************************
*
* _cbDialog4
多页工具中索引值为3的窗口回调函数
*/
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);
}
}
/*********************************************************************
*
* _cbBkWindow
*
* Function description
* Callback routine of the background window.
* It shows the sample title and draws the background.
*/
static void _cbBkWindow(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
GUI_SetBkColor(GUI_BLUE);
GUI_Clear();
GUI_SetColor(GUI_WHITE);
GUI_SetFont(&GUI_Font24_ASCII);
GUI_DispStringHCenterAt("WIDGET_Multipage - Sample", 160, 5);
break;
default:
WM_DefaultProc(pMsg);
}
}
/* =====================================================
定义MULTIPAGE_SKINFLEX_PROPS数据类型的变量,配置multipage小工具皮肤外观
-------------------------------------------------- */
MULTIPAGE_SKINFLEX_PROPS multipageSkinFlex = {
GUI_LIGHTYELLOW, // backcolor for selected items
GUI_WHITE, // top color of top gradient
GUI_LIGHTBLUE, // buttom color of buttom gradient
GUI_LIGHTBLUE, // top color of buttom gradient
GUI_BLUE, // buttom color of buttom gradient
GUI_GRAY, // frame color
GUI_BLACK // text color
};/* ==================================================================
定义BUTTON_SKINFLEX_PROPS 数据类型变量,配置button小工具皮肤外观
------------------------------------------------------------------ */BUTTON_SKINFLEX_PROPS buttonSkinFlex = {
GUI_LIGHTGREEN, // outer color of suurounding frame
GUI_LIGHTYELLOW, // inner color of surrounding frame
GUI_LIGHTGRAY, // color of area bettwen farme and inner area
GUI_WHITE, // upper color of upper gradient
GUI_LIGHTGRAY, // lower color of upper gradient
GUI_LIGHTGRAY, // upper color of lower gradient
GUI_GRAY, // lower color of lower gradient
10 // radius radius of rounded corner 圆角的半径
};
/*=============================================================================== * 定义函数,创建multipage,用于工程控制 -----------------------------------------------------------------------------*/int menuTask()
{
/*
0-----------------------------------------------------------------
0=================================================================
*/
WM_HWIN hMultiPage; WM_HWIN hDialog; WM_HWIN hFrameWin; /*
0-----------------------------------------------------------------
0=================================================================
*/
GUI_CURSOR_Show();
/* 设置多页窗口小工具默认皮肤 */
MULTIPAGE_SetDefaultSkin (MULTIPAGE_SKIN_FLEX); MULTIPAGE_SetSkinFlexProps( &multipageSkinFlex, MULTIPAGE_PI_ENABLED);
MULTIPAGE_SetSkinFlexProps( &multipageSkinFlex, MULTIPAGE_PI_SELECTED);
/* 设置各类窗体小工具皮肤 */
PROGBAR_SetDefaultSkin (PROGBAR_SKIN_FLEX);
BUTTON_SetDefaultSkin (BUTTON_SKIN_FLEX);
SCROLLBAR_SetDefaultSkin (SCROLLBAR_SKIN_FLEX);
SLIDER_SetDefaultSkin (SLIDER_SKIN_FLEX);
HEADER_SetDefaultSkin (HEADER_SKIN_FLEX); FRAMEWIN_GetSkinFlexProps(&pFrameOri,FRAMEWIN_SKINFLEX_PI_ACTIVE);
pFrameOri.Radius = 0;
pFrameOri.aColorFrame[0] = 0xCDC673;
pFrameOri.aColorFrame[1] = 0xCDC673;
pFrameOri.aColorFrame[2] = 0xCDC673;
pFrameOri.BorderSizeL = 2;
pFrameOri.BorderSizeT = 2;
pFrameOri.aColorTitle[0] = 0xCDC673;
pFrameOri.aColorTitle[1] = 0xCDC673;
FRAMEWIN_SetSkinFlexProps(&pFrameOri, FRAMEWIN_SKINFLEX_PI_ACTIVE); WM_EnableMemdev(WM_HBKWIN);
WM_SetCallback(WM_HBKWIN, &_cbBkWindow);
//
// Create the frame window
//
hFrameWin = FRAMEWIN_Create("FrameWindow", &_cbFrameWin, WM_CF_SHOW, 35, 25, 280, 210);
FRAMEWIN_SetActive(hFrameWin, 1);
FRAMEWIN_SetMoveable(hFrameWin, 1);
//
// Create the MULTIPAGE widget
//
hMultiPage = MULTIPAGE_CreateEx(7, 6, 220, 120, WM_GetClientWindow(hFrameWin), WM_CF_SHOW, 0,0); //
// Create and attach the MULTIPAGE dialog windows
//
hDialog = GUI_CreateDialogBox(_aDialogCreate1, GUI_COUNTOF(_aDialogCreate1), NULL, WM_GetClientWindow(hMultiPage), 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, " 1");
hDialog = GUI_CreateDialogBox(_aDialogCreate2, GUI_COUNTOF(_aDialogCreate2), NULL, WM_GetClientWindow(hMultiPage), 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, " age 2"); hDialog = GUI_CreateDialogBox(_aDialogCreate3, GUI_COUNTOF(_aDialogCreate3), NULL, WM_GetClientWindow(hMultiPage), 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, " age 3");
hDialog = GUI_CreateDialogBox(_aDialogCreate4, GUI_COUNTOF(_aDialogCreate4), _cbDialog4, WM_GetClientWindow(hMultiPage), 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, " age 4"); hDialog = GUI_CreateDialogBox(_aDialogCreate5, GUI_COUNTOF(_aDialogCreate5), NULL, WM_GetClientWindow(hMultiPage), 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, " age 5");
hDialog = GUI_CreateDialogBox(_aDialogCreate6, GUI_COUNTOF(_aDialogCreate6), NULL, WM_GetClientWindow(hMultiPage), 0, 0);
MULTIPAGE_AddPage(hMultiPage, hDialog, " age 6");
MULTIPAGE_SelectPage( hMultiPage, 2);
return 0;
} |
|