[C] 纯文本查看 复制代码
static void _cbViewWin1(WM_MESSAGE * pMsg) {
WM_HWIN hWin;
hWin = pMsg->hWin;
int NCode, Id;
static GUI_RECT Rect;
static int xPos, yPos;
static int xSize, ySize;
GUI_MEMDEV_Handle hMemOld;
static WM_HTIMER hTimerTime;
static WM_HWIN hText[4] = { 0 };
static int x = 100;
static int y = 100;
static short h_old = 0;
static short a_old = 360;
static short l_old = 0;
//U32 start,end;
switch (pMsg->MsgId)
{
case WM_PAINT:
WM_GetClientRect(&Rect);
//start = osKernelSysTick();
//GUI_SetBkColor(GUI_MAKE_COLOR(0xA98133));//0xC9A133
//GUI_Clear();
xPos = WM_GetWindowOrgX(hWin);
yPos = WM_GetWindowOrgY(hWin);
hMemOld = GUI_MEMDEV_Select(hLCD);
/**/
//GUI_MEMDEV_RotateHQ(pImage->hMem,
// hDst,
// 100,
// 100,
// 30 * 1000,
// 1*1000);
//GUI_SetColor(GUI_RED);
//GUI_DrawRect(0, 0, GUI_MEMDEV_GetXSize(hLCD) - 1, GUI_MEMDEV_GetYSize(hLCD) - 1);
GUI_DrawRect(Rect.x0, Rect.y0, Rect.x1, Rect.y1);
//GUI_MEMDEV_Write(hDst);
GUI_MEMDEV_WriteAt(hDst, xPos+1, yPos+1);
//GUI_MEMDEV_WriteAt(pImage->hMem, x, 100);
//GUI_MEMDEV_WriteAlphaAt(pImage->hMem, 255, 100, 100);
//GUI_DrawBitmap(&bmPT, x, 200);
//GUI_SetBkColor(GUI_RED);
//GUI_Clear();
//GUI_MEMDEV_WriteAt(pImage->hMem, x, 100);
GUI_MEMDEV_Rotate(pImage->hMem, hLCD, x, 100, a_old * 1000, 1000);
GUI_DrawBitmap(&bmalarm, LCD_GetXSize()-76, 16);
//GUI_MEMDEV_Select(0);
/* Display the result on the screen */
//GUI_MULTIBUF_Begin();
//GUI_MEMDEV_CopyToLCDAt(hDst, 0, 0);
//GUI_MULTIBUF_End();
//GUI_MEMDEV_CopyToLCD(pImage->hMem);
GUI_MEMDEV_Select(hMemOld);
//GUI_MEMDEV_WriteAt(hDst, 0, 32);
//GUI_MEMDEV_CopyToLCDAt(hLCD, 0, yPos);
GUI_MEMDEV_WriteAt(hLCD, 0, yPos);
// GUI_MEMDEV_WriteAt(hDst, xPos+1, yPos+1);
//GUI_MEMDEV_WriteAt(pImage->hMem, 0, yPos);
//end = osKernelSysTick();
//printf("time :%d\r\n",end - start);
break;
case WM_TIMER:
if (x++ > 400)x = 100;
a_old -= 10;
if (a_old <= 0)a_old = 360;
WM_InvalidateWindow(hWin);
WM_RestartTimer(pMsg->Data.v, 0);
break;
case WM_CREATE:
/**/
WM_GetClientRect(&Rect);
hTimerTime = WM_CreateTimer(hWin, 0, 100, 0);
/*******************************************************************************************************/
pImage = &_aImage[0];
/* Get the picture sizes */
pImage->xSize = pImage->pBitmap->XSize;
pImage->ySize = pImage->pBitmap->YSize;
/* Allocate the needed memdev pictures */
pImage->hMem = GUI_MEMDEV_CreateFixed(0,
0,
pImage->xSize,
pImage->ySize,
GUI_MEMDEV_HASTRANS,
GUI_MEMDEV_APILIST_32,
GUICC_M8888I);
/* Select the memdev created and paint the picturte on it */
GUI_MEMDEV_Select(pImage->hMem);
GUI_SetBkColor(GUI_TRANSPARENT);
GUI_Clear();
GUI_DrawBitmap(&bmPT, 0, 0);
/* Select the display after finishing the job */
GUI_MEMDEV_Select(0);
/* Display the result on the screen */
//GUI_MULTIBUF_Begin();
// GUI_MEMDEV_CopyToLCD(pImage->hMem);
//GUI_MULTIBUF_End();
/* Get the screen size */
xPos = WM_GetWindowOrgX(hWin);
yPos = WM_GetWindowOrgY(hWin);
xSize = WM_GetWindowSizeX(hWin);// LCD_GetXSize();
ySize = WM_GetWindowSizeY(hWin);// LCD_GetYSize();
// printf("xSize:%d,ySize:%d\r\n", xSize, ySize);
/* Exit if any issue when creating the memdev */
hLCD = GUI_MEMDEV_CreateFixed(xPos,
yPos,
xSize,
ySize,
GUI_MEMDEV_HASTRANS,
GUI_MEMDEV_APILIST_32,
GUICC_M8888I);
/* Select the display after finishing the job */
GUI_MEMDEV_Select(0);
//WM_GetClientRect(&Rect);
/* Exit if any issue when creating the memdev */
hDst = GUI_MEMDEV_CreateFixed(0,
0,
xSize-86,
ySize-2,
GUI_MEMDEV_HASTRANS,
GUI_MEMDEV_APILIST_32,
GUICC_M8888I);
#if 1
/* Select the memdev created and paint the picturte on it */
GUI_MEMDEV_Select(hDst);
//GUI_SetBkColor(GUI_MAKE_COLOR(0xA98133));
GUI_Clear();
//GUI_DrawBitmap(&bmPT, 0, 0);
//WM_GetClientRect(&Rect);
//GUI_DrawRect(0, 0, GUI_MEMDEV_GetXSize(hDst) - 1, GUI_MEMDEV_GetYSize(hDst) - 1);
//缂佹ê鍩楅崸鎰垼缁?
xPos = GUI_MEMDEV_GetXPos(hDst) + 10;
yPos = GUI_MEMDEV_GetYPos(hDst) + 10;// Rect.y1 / 2 - 48;
xSize = GUI_MEMDEV_GetXSize(hDst) - xPos * 2;// 800 - 20;// Rect.x1 - 20;
ySize = GUI_MEMDEV_GetYSize(hDst) - yPos * 2;// 480 - 60;// Rect.y1 - yPos - 10;
//GUI_ClearRect(xPos, yPos, xPos + xSize, yPos + ySize);
GUI_SetColor(GUI_BLACK);
GUI_FillRect(xPos, yPos, /*xPos +*/ xSize, /*yPos +*/ ySize);
//GUI_SetColor(GUI_GREEN);
//GUI_DrawRect(xPos, yPos, xPos + xSize, yPos + ySize);
GUI_SetColor(GUI_MAKE_COLOR(0x00005000));
GUI_DrawRect(xPos, yPos, xPos + xSize, yPos + ySize);
GUI_SetPenSize(1);
GUI_SetLineStyle(GUI_LS_DOT);
for (int i = 0; i < ySize / 10 + 1;i++)
GUI_DrawHLine(yPos + ySize - 10 * i, xPos, xPos + xSize);
for (int i = 0; i < xSize / 10 + 1; i++)
GUI_DrawVLine(xPos + 10 * i, yPos, yPos + ySize);
/*閸ф劖鐖*/
GUI_SetColor(GUI_GREEN);
GUI_SetLineStyle(GUI_LS_SOLID);
GUI_DrawVLine(xPos + 10, yPos + 20, yPos + ySize - 20);
GUI_DrawHLine(yPos + ySize - 20, xPos + 10, xPos + xSize - 20);
GUI_DrawLine(xPos + 10, yPos + 20, xPos + 6, yPos + 24);
GUI_DrawLine(xPos + 10, yPos + 20, xPos + 14, yPos + 24);
GUI_DrawLine(xPos + xSize - 20, yPos + ySize - 20, xPos + xSize - 20 - 4, yPos + ySize - 24);
GUI_DrawLine(xPos + xSize - 20, yPos + ySize - 20, xPos + xSize - 20 - 4, yPos + ySize - 16);
/*閸掕瀹*/
for (int i = 0; i < 6; i++){
GUI_DrawHLine(yPos + ySize - 20 - 70 * i, xPos + 10, xPos + 14);
//GUI_DrawVLine(xPos + 50 + 50 * i, yPos + ySize - 24, yPos + ySize - 20);
}
for (int i = 0; i < 7; i++){
//GUI_DrawHLine(yPos + ySize - 40 - 50 * i, xPos + 10, xPos + 14);
GUI_DrawVLine(xPos + 10 + 100 * i, yPos + ySize - 24, yPos + ySize - 20);
}
GUI_SetFont(&GUI_Font24_ASCII);
GUI_SetTextMode(GUI_TM_TRANS);
GUI_DispStringAt("0", xPos + 20, yPos + ySize - 100);
GUI_DispStringAt("1000", xPos + 20, yPos + ySize - 170);
GUI_DispStringAt("2000", xPos + 20, yPos + ySize - 240);
GUI_DispStringAt("3000", xPos + 20, yPos + ySize - 310);
GUI_DispStringAt("4000", xPos + 20, yPos + ySize - 380);
GUI_DispStringAt("0", xPos + 104, yPos + ySize - 20);
GUI_DispStringAt("200", xPos + 192, yPos + ySize - 20);
GUI_DispStringAt("400", xPos + 292, yPos + ySize - 20);
GUI_DispStringAt("600", xPos + 392, yPos + ySize - 20);
GUI_DispStringAt("800", xPos + 492, yPos + ySize - 20);
GUI_DispStringAt("1000", xPos + 592, yPos + ySize - 20);
//GUI_MEMDEV_WriteAt(hDst, 0, 0);
//GUI_MEMDEV_WriteAlphaAt(pImage->hMem, 255, 0, 0);
//GUI_DrawBitmap(&bmPT, 100, 100);
/* Select the display after finishing the job */
GUI_MEMDEV_Select(0);
#endif
// xPos = 724;
// yPos = 100;
// xSize = 64;
// ySize = 16;
// hText[0] = TEXT_CreateEx(xPos, yPos, xSize, ySize, hWin, WM_CF_SHOW, TEXT_CF_LEFT, GUI_ID_TEXT0, "涓搧瑁呭");
// yPos += ySize + 6;
// hText[1] = TEXT_CreateEx(xPos, yPos, xSize, ySize, hWin, WM_CF_SHOW, TEXT_CF_LEFT, GUI_ID_TEXT0, "涓搧瑁呭");
// yPos += ySize + 6;
// hText[2] = TEXT_CreateEx(xPos, yPos, xSize, ySize, hWin, WM_CF_SHOW, TEXT_CF_LEFT, GUI_ID_TEXT0, "涓搧瑁呭");
// yPos += ySize + 6;
// hText[3] = TEXT_CreateEx(xPos, yPos, xSize, ySize, hWin, WM_CF_SHOW, TEXT_CF_LEFT, GUI_ID_TEXT0, "涓搧瑁呭");
// for (int i = 0; i < 4; i++){
// TEXT_SetFont(hText[i], &GUI_FontS16);
// TEXT_SetTextColor(hText[i], GUI_WHITE);
// TEXT_SetBkColor(hText[i], GUI_DARKGREEN);
// }
break;
default:
WM_DefaultProc(pMsg);
}
}