|
- #include <stddef.h>
- #include "stdio.h"
- #include "GUI.h"
- #include "DIALOG.h"
- #include "WM.h"
- #include "BUTTON.h"
- #include "CHECKBOX.h"
- #include "DROPDOWN.h"
- #include "EDIT.h"
- #include "FRAMEWIN.h"
- #include "LISTBOX.h"
- #include "MULTIEDIT.h"
- #include "RADIO.h"
- #include "SLIDER.h"
- #include "TEXT.h"
- #include "PROGBAR.h"
- #include "SCROLLBAR.h"
- #include "LISTVIEW.h"
- static int Count;
- static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] =
- {
- {FRAMEWIN_CreateIndirect,"armfly" ,0,0,0,240,320,FRAMEWIN_CF_MOVEABLE,0},
- {BUTTON_CreateIndirect, "BUTTON0" ,GUI_ID_BUTTON0, 20,80, 80,20,0,0},
- {BUTTON_CreateIndirect, "BUTTON1" ,GUI_ID_BUTTON1, 140,80,80,20,0,0},
- {TEXT_CreateIndirect, "0000" ,GUI_ID_TEXT0, 90,10,140,48,0,0}
- };
- void PaintDialog(WM_MESSAGE *pMSG)
- {
- WM_HWIN hWin = pMSG->hWin;
- }
- void InitDialog(WM_MESSAGE *pMSG)
- {
- WM_HWIN hWin = pMSG->hWin;/* ¶Ô»°¿òμľä±ú */
-
- FRAMEWIN_SetFont(hWin,&GUI_Font24B_ASCII);
- FRAMEWIN_SetTextAlign(hWin,GUI_TA_VCENTER | GUI_TA_CENTER);
- FRAMEWIN_AddCloseButton(hWin,FRAMEWIN_BUTTON_RIGHT,0);
- FRAMEWIN_AddMaxButton(hWin,FRAMEWIN_BUTTON_RIGHT,1);
- FRAMEWIN_AddMinButton(hWin,FRAMEWIN_BUTTON_RIGHT,2);
- FRAMEWIN_SetTitleHeight(hWin,30);
- TEXT_SetFont(WM_GetDialogItem(hWin,GUI_ID_TEXT0),&GUI_Font8_ASCII);
- }
- static void _cbCallback(WM_MESSAGE *pMSG)
- {
- int NCode,Id;
- char buf[10];
- WM_HWIN hWin = pMSG->hWin;
-
- switch(pMSG->MsgId)
- {
- case WM_TIMER:
- Count++;
- sprintf(buf,"%04d",Count);
- TEXT_SetText(WM_GetDialogItem(hWin,GUI_ID_TEXT0),(const char *) buf);
- WM_RestartTimer(pMSG->Data.v,100);
- break;
-
- case WM_PAINT:
- PaintDialog(pMSG);
- break;
-
- case WM_INIT_DIALOG:
- InitDialog(pMSG);
- break;
-
- /* °′ÏÂÄ3¸ö°′¼üoó·¢Ëíμ½μ±Ç°°üo¬½1μãμÄ′°¿ú */
- 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;
-
- case GUI_ID_BUTTON1:
- 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 Timer2_Task(void *p_arg)
- {
- WM_HWIN hDlg;
- WM_HTIMER hTimer;
-
- Count = 0;
- WM_SetCreateFlags(WM_CF_MEMDEV);/* memory device */
-
- GUI_Init();
- WM_SetDesktopColor(GUI_BLUE);
- PROGBAR_SetDefaultSkin(PROGBAR_SKIN_FLEX);
- FRAMEWIN_SetDefaultSkin(FRAMEWIN_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);
-
- hDlg = GUI_CreateDialogBox(_aDialogCreate,GUI_COUNTOF(_aDialogCreate),&_cbCallback,0,0,0);
- hTimer = WM_CreateTimer(WM_GetClientWindow(hDlg),0,100,0);
- while(1)
- {
- GUI_Delay(1000);
- }
- }
复制代码 大神:源码如上,这是安福莱教程-对话框上使用定时器实例,我想在开发板上跑一边,结果这里面的小工具一次只能显示一个
例如:我显示Frame框架窗口,就不能显示BUTTON了,恳请大神指教原因~~~感谢 |
|