|
在学习ucgui时,看到了定时器,于是学习硬汉哥的教程36章,仿造写但是没有成功,这是为啥????求各位提示一下:
static const GUI_WIDGET_CREATE_INFO _aDialogCreate5[] = {
{ FRAMEWIN_CreateIndirect, "Caption", 0, 0, 0, 800,600,0,0},
{ BUTTON_CreateIndirect, "BUTTON0", GUI_ID_BUTTON0, 174,265,354,82, 0,0},
{ TEXT_CreateIndirect, "0000", GUI_ID_TEXT0, 174,95, 365,98, 0,0}
};
/*****************************************************************
** FunctionName:void PaintDialog(WM_MESSAGE * pMsg)
** Function: to initialize the Dialog items
**
** call this function in _cbCallback --> WM_PAINT
*****************************************************************/
void PaintDialog5(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg->hWin;
}
void InitDialog5(WM_MESSAGE * pMsg)
{
WM_HWIN hWin = pMsg->hWin;
//
//FRAMEWIN
//
FRAMEWIN_SetClientColor(hWin,0xffffff);
FRAMEWIN_SetTitleVis(hWin,0);
//
//GUI_ID_BUTTON0
//
BUTTON_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),BUTTON_CI_UNPRESSED,0xffffc0);
BUTTON_SetFont(WM_GetDialogItem(hWin,GUI_ID_BUTTON0),&GUI_Font32B_ASCII);
//
//GUI_ID_TEXT0
//
TEXT_SetBkColor(WM_GetDialogItem(hWin,GUI_ID_TEXT0),0x808080);
TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT0),&GUI_FontD48);
TEXT_SetTextAlign(WM_GetDialogItem(hWin,GUI_ID_TEXT0),GUI_TA_VCENTER|GUI_TA_CENTER);
}
static void _cbCallback5(WM_MESSAGE * pMsg)
{
int NCode, Id;
char buf1[10],buf2[10],buf3[10],buf4[10];
WM_HWIN hWin = pMsg->hWin;
switch (pMsg->MsgId)
{
case WM_TIMER:
count1++;
sprintf(buf1,"%04d",count1);
TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT0),(const char *)buf1);
WM_RestartTimer(pMsg->Data.v, 100);
break;
case WM_DELETE:
DisplayState=0; //窗体已经关闭
break;
case WM_PAINT:
PaintDialog5(pMsg);
break;
case WM_INIT_DIALOG:
InitDialog5(pMsg);
break;
case WM_KEY:
switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key)
{
case GUI_KEY_ESCAPE:
GUI_EndDialog(hWin, 1);
break;
case GUI_KEY_ENTER:
GUI_EndDialog(hWin, 0);
break;
}
break;
case WM_NOTIFY_PARENT:
Id = WM_GetId(pMsg->hWinSrc);
NCode = pMsg->Data.v;
switch (Id)
{
case GUI_ID_OK:
if(NCode==WM_NOTIFICATION_RELEASED)
GUI_EndDialog(hWin, 0);
break;
case GUI_ID_CANCEL:
if(NCode==WM_NOTIFICATION_RELEASED)
GUI_EndDialog(hWin, 0);
break;
case GUI_ID_BUTTON0:
switch(NCode)
{
case WM_NOTIFICATION_CLICKED:
break;
case WM_NOTIFICATION_RELEASED:
break;
case WM_NOTIFICATION_MOVED_OUT:
break;
}
break;
}
break;
default:
WM_DefaultProc(pMsg);
}
}
void OPenDisplay(void)
{
WM_HWIN display;
DisplayState=1;
display= GUI_ExecDialogBox(_aDialogCreate5, GUI_COUNTOF(_aDialogCreate5), &_cbCallback5, 0, 0, 0);
WM_CreateTimer(WM_GetClientWindow(display), /*接收信息的窗口句柄 */
0, /*用户定义的ID*/
500, /* 周期*/
0); /*0 */
while(DisplayState)
{
GUI_Delay(50);
}
}
运行结果:一直是0
|
|