|
//建立窗口
void CreatSysWin(void){
hWinSys = WM_CreateWindowAsChild(0,0,800,480, WM_HBKWIN, WM_CF_SHOW| WM_CF_MEMDEV,_cbSYSWindow,0);
WM_CreateWindowAsChild (0,0,800,480, hWinSys, WM_CF_SHOW | WM_CF_MEMDEV,_cbIconWin,0);
}
//回调函数,其中CreatIconWin()为建立ICONVIEW控件
void CreatIconWin(void){
uint8_t i;
uint16_t ICONVIEW_HNum = 3; /* ICONVIEWÔúˮƽ·½ÏòμÄí¼Ïñêy */
uint16_t ICONVIEW_VNum = 4; /* ICONVIEWÔú′1Ö±·½ÏòμÄí¼Ïñêy */
prevent_refresh = 0;
/* éèÖÃICONVIEWμÄÏÔê¾Î»Öà ********************************************************************/
ICONVIEW_VNum = (LCD_GetYSize() - ICONVIEW_TBorder - ICONVIEW_BBorder) / ICONVIEW_Height;
ICONVIEW_HNum = (LCD_GetXSize() - ICONVIEW_LBorder - ICONVIEW_RBorder) / ICONVIEW_Width;
/*ÔúÖ¸¶¨Î»ÖÃ′′½¨Ö¸¶¨3ß′çμÄICONVIEW D¡1¤¾ß*/
hWinIcon = ICONVIEW_CreateEx(ICONVIEW_TBorder,ICONVIEW_LBorder,
ICONVIEW_HNum * ICONVIEW_Width,ICONVIEW_VNum * ICONVIEW_Height,
hWinSys,WM_CF_SHOW | WM_CF_HASTRANS, 0, GUI_ID_ICONVIEW0,
ICONVIEW_Width, ICONVIEW_Height - ICONVIEW_YSpace);/* í¼±êμÄ′1Ö±3ß′ç */
for (i = 0; i < GUI_COUNTOF(_aBitmapItem); i++) { /* ÏòICONVIEW D¡1¤¾ßìí¼óDÂí¼±ê */
ICONVIEW_AddBitmapItem(hWinIcon, _aBitmapItem.pBitmap, _aBitmapItem.pText);
}
ICONVIEW_SetBkColor(hWinIcon, ICONVIEW_CI_SEL, GUI_WHITE | 0x80000000);/* éèÖÃD¡1¤¾ßμı3¾°é« 32 λÑÕé«ÖμμÄǰ8 λ¿éóÃóúalpha»ìoÏ′|àíD§1û*/
ICONVIEW_SetFont(hWinIcon, &GUI_Font16B_ASCII);/* éèÖÃ×Öìå */
ICONVIEW_SetSpace(hWinIcon, GUI_COORD_Y, ICONVIEW_YSpace); /* éèÖÃí¼±êÔúx »òy ·½ÏòéÏμļä¾à¡£*/
ICONVIEW_SetIconAlign(hWinIcon, ICONVIEW_IA_HCENTER|ICONVIEW_IA_TOP);/* éèÖÃ¶ÔÆë·½ê½ */
ICONVIEW_SetSel(hWinIcon,-1);
}
static void _cbIconWin(WM_MESSAGE * pMsg)
{
switch (pMsg->MsgId) {
case WM_CREATE:
CreatIconWin();
break;
case WM_PAINT:
GUI_SetBkColor(GUI_BLUE);
GUI_Clear();
break; //WM_PAINT
default:
WM_DefaultProc(pMsg);
}
}
//回调函数,用于控件的操作
void CreatIconWin(void);
__IO uint8_t prevent_refresh = 0; /* Õa¸ö2Îêy±è½ÏÖØòa£¬óÃóú·àÖ1ICON¿Ø¼tμã»÷ÏÂê±¾í′¥·¢»Øμ÷oˉêyμÄWM_PAINTÏûÏ¢*/
void _cbSYSWindow(WM_MESSAGE * pMsg){
int NCode,Id;
switch (pMsg->MsgId){
case WM_NOTIFY_PARENT:{
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch (Id){
case GUI_ID_ICONVIEW0:{
switch (NCode){
case WM_NOTIFICATION_RELEASED: {
switch(ICONVIEW_GetSel(pMsg->hWinSrc)){
case 9:{
WM_HideWindow(hWinSys);
WM_ShowWindow(hWinMain);
ICONVIEW_SetSel(hWinIcon,-1);
break;
}
case 7:{
ICONVIEW_SetSel(hWinIcon,-1);
WM_HideWindow(hWinSys);
WM_HideWindow(hWinMain);
WM_ShowWindow(WM_HBKWIN);
ExecCalibration(&mCurrentSettings);
break;
}
}
break;
}
}
break;
}
}
break;
}
case WM_PAINT:{
GUI_SetBkColor(GUI_BLUE);
GUI_Clear();
break;
}
default:
WM_DefaultProc(pMsg);
break;
}
} |
|