|
如下:我现在建立了3个任务
/*****´´½¨ÆäËûÈÎÎñ****/
void App_TaskCreate() //½¨Á¢ÆäËûµÄÈÎÎñ
{
OSTaskCreate(APP_TASK_Touch,NULL,&APP_TASK_T[APP_TASK_Size-1],APP_TASK_Touch_Pro); //´触摸任务
OSTaskCreate(APP_Init_DeskTop ,NULL,&APP_TASK_Init[APP_TASK_Size-1],APP_TASK_Init_Pro) ; // 桌面图标任务,在这里面实现触摸到各功能的创建
OSTaskCreate(UpData_Task ,NULL,&APP_TASK_U[APP_TASK_Size-1], APP_TASK_UpDa_Pro ) ; // 时间更新任务
}
现在是在APP_Init_DeskTop 这个里面实现图标到各功能,我是这样弄的:
void APP_Init_DeskTop()
{
WM_SetCreateFlags(WM_CF_MEMDEV); //ʹÓô洢É豸
WM_SetCallback(WM_HBKWIN, &_Init_cbBkWindow);//ÉèÖñ³¾°»Øµ÷º¯Êý
/*****ÒòΪ´´½¨µÄÈÎÎñ¶¼ÊÇ·Ç×èÈûʽµÄ******/
_CreateFrame(&_Init_cb_first); //在这个第一个窗口里创建图标,并且实现各个功能
while(!0)
{
OSTimeHSMS(0,0,0,500); //500ºÁÃëÏìÓ¦Ò»´Î
}
}
而上面的(_Init_cb_first)这回调函数如下:
static void _Init_cb_first(WM_MESSAGE* pMsg)
{
u8 dx=85,dy=65;
WM_HWIN hButton;
WM_HWIN hWin = pMsg->hWin; //»ñȡԴÎļþ
switch (pMsg->MsgId)
{
case WM_CREATE:
WM_SetFocus(hWin); //Õâ¸ö±íʾ¾Û½¹µ½µ±Ç°´°¿Ú
hButton= _CreateButton(hWin, "", GUI_ID_BUTTON0, 5+0*dx, 5, 70,60 , 0);
BUTTON_SetBitmap(hButton,0,&bmqq);
hButton= _CreateButton(hWin, "", GUI_ID_BUTTON1, 5+1*dx, 5, 70,60 , 0);
BUTTON_SetBitmap(hButton,0,&bmLOL);
hButton= _CreateButton(hWin, "", GUI_ID_BUTTON2, 5+2*dx, 5, 70,60 , 0);
BUTTON_SetBitmap(hButton,0,&bmpicture);
hButton= _CreateButton(hWin, "", GUI_ID_BUTTON3, 5+0*dx, 5+1*dy, 70,60 , 0);
BUTTON_SetBitmap(hButton,0,&bmPEOPLE);
hButton= _CreateButton(hWin, "", GUI_ID_BUTTON4, 5+1*dx, 5+1*dy, 70,60 , 0);
BUTTON_SetBitmap(hButton,0,&bmMP3);
hButton= _CreateButton(hWin, "", GUI_ID_BUTTON5, 5+2*dx, 5+1*dy, 70,60 , 0);
BUTTON_SetBitmap(hButton,0,&bmATM);
hButton= _CreateButton(hWin, "", GUI_ID_BUTTON6, 5+0*dx, 5+2*dy, 70,60 , 0);
BUTTON_SetBitmap(hButton,0,&bmrong);
hButton= _CreateButton(hWin, "", GUI_ID_BUTTON7, 5+1*dx, 5+2*dy, 70,60 , 0);
BUTTON_SetBitmap(hButton,0,&bmfish);
hButton= _CreateButton(hWin, "", GUI_ID_BUTTON8, 5+2*dx, 5+2*dy, 70,60 , 0);
BUTTON_SetFont (hButton, &GUI_Font8x16);
BUTTON_SetTextColor (hButton, 0, GUI_BLUE);
BUTTON_SetText(hButton, pText="Time");
//BUTTON_SetBitmap(hButton,0,&bmqq);
break;
case WM_PAINT:
WM_GetClientRect(&r);
GUI_SetBkColor(GUI_LIGHTRED);
GUI_Clear();
break;
case WM_NOTIFY_PARENT: //这个地方实现各个功能建立,执行
if (pMsg->Data.v == WM_NOTIFICATION_RELEASED)
{
int Id = WM_GetId(pMsg->hWinSrc); //Ô´´°¿Ú
switch (Id)
{
case GUI_ID_BUTTON0 :
/*****´´½¨QQ****/
break;
case GUI_ID_BUTTON1 :
/****´´½¨Ó¢ÐÛÁªÃËÈÎÎñ****/
break;
case GUI_ID_BUTTON2 :
/****´´½¨ÕÕÏàÈÎÎñ********/
break;
case GUI_ID_BUTTON3 :
/****´´½¨Í¼Æ¬ÈÎÎñ*****/
break;
case GUI_ID_BUTTON4 :
/****´´½¨MP3ÈÎÎñ****/
OSTaskCreate(MP3_Play,NULL,&APP_TASK_T[APP_TASK_Size-1],APP_TASK_Touch_Pro);
/*****************这个地方是最不知道对不对的了,因为这个任务是在窗口任务里创建的,而这又创建了一个任务,不知对不对*****/
/*****************也不知道你是怎么建立的,希望硬汉大哥指导一下,谢谢***********************/
break;
case GUI_ID_BUTTON5 :
/****´´½¨ATMÈ¡¿î»úµÄÈÎÎñ****/
break;
case GUI_ID_BUTTON6 :
/****´´½¨¼ÆËãÆ÷µÄÈÎÎñ*****/
break;
case GUI_ID_BUTTON7 :
/****´´½¨Ï´Ò»úµÄÈÎÎñ*****/
break;
case GUI_ID_BUTTON8 :
/****´´½¨Ê±ÖÓÈÎÎñ****/
break;
}
}
break;
default:
WM_DefaultProc(pMsg); //ĬÈÏ´¦Àí
}
} |
|