|
新建了一个窗口 想在其中加入一些控件和旋转指针 但是旋转指针加入不上 写好了函数直接调用 不行
回调函数那里不知道怎么弄到底 希望大家可以帮忙看看代码
#include "includes.h"
#include "MainTask.h"
WM_HWIN hWinMain;
WM_HWIN hWinInfo;
extern GUI_CONST_STORAGE GUI_BITMAP bmzhengchang;
#define ID_WINDOW_0 (GUI_ID_USER + 0x01)
#define MSG_zhizhen (GUI_ID_USER + 0x2)
#define countof(Obj) (sizeof(Obj) / sizeof(Obj[0]))
#define DEG2RAD (3.1415926f / 180)
#define MAG 4
static const GUI_POINT _aNeedle_0[] = {
{ MAG * ( 0), MAG * ( 0 )},
{ MAG * (-3), MAG * (10 )},
{ MAG * (-3), MAG * (60)},
{ MAG * ( 3), MAG * (60 )},
{ MAG * ( 3), MAG * (10 )},
};
typedef struct {
GUI_AUTODEV_INFO AutoDevInfo;
GUI_POINT aPoints[7];
float Angle;
} PARAM;
void _Draw_0(void * p) {
PARAM * pParam = (PARAM *)p;
GUI_SetColor(GUI_RED);
GUI_AA_FillPolygon(pParam->aPoints, countof(_aNeedle_0), MAG * 150, MAG * 180);
}
void GUIDEMO_A(void) {
int t0=27000 ;
PARAM Param;
GUI_AUTODEV AutoDev;
GUI_MEMDEV_Handle hMem;
GUI_AA_EnableHiRes();
GUI_AA_SetFactor(MAG);
GUI_MEMDEV_CreateAuto(&AutoDev);
while (1)
{
t0-= 100;
if(t0 < 17000)
{
t0 = 27000;
}
Param.Angle= t0;
Param.Angle *= 3.1415926f / 18000;
GUI_RotatePolygon(Param.aPoints, _aNeedle_0, countof(_aNeedle_0), Param.Angle);
GUI_MEMDEV_DrawAuto(&AutoDev, & aram.AutoDevInfo, _Draw_0, & aram);
}
}
static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {
{ WINDOW_CreateIndirect, "Window", ID_WINDOW_0, 0, 0, 800, 480, 0, 0x64, 0 },
};
static void _cbDialog(WM_MESSAGE * pMsg) {
switch (pMsg->MsgId) {
case WM_PAINT:
break;
case WM_NOTIFY_PARENT:
GUIDEMO_A();
break;
default:
WM_DefaultProc(pMsg);
}
}
void MainTask(void)
{
/* 初始化并创建对话框 */
GUI_Init();
WM_SetCreateFlags(WM_CF_MEMDEV);
hWinMain= GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);
while(1)
{
GUI_Delay(20);
}
} |
|