dialog_slidercolor.c

来自「ucgui3.90a」· C语言 代码 · 共 307 行 · 第 1/3 页

C
307
字号
  /* At last invalidate dialog client window */  WM_InvalidateWindow(WM_GetClientWindow(hDlg));}/***********************************************************************       _cbBkWindow*/static void _cbBkWindow(WM_MESSAGE * pMsg) {  int xPos, yPos;  xPos = LCD_GetXSize() / 2 - bmSeggerLogoBlue.XSize/2;  yPos = LCD_GetYSize() / 2 - bmSeggerLogoBlue.YSize/2 ;  switch (pMsg->MsgId) {  case WM_PAINT:    GUI_SetBkColor(GUI_BLUE);    GUI_Clear();    GUI_SetColor(GUI_WHITE);    GUI_SetFont(&GUI_Font24_ASCII);    GUI_DispStringHCenterAt("DIALOG_SliderColor - Sample", 160, 5);    GUI_DrawBitmap(&bmSeggerLogoBlue, xPos, yPos );  default:    WM_DefaultProc(pMsg);  }}/***********************************************************************       _cbCallback*/static void _cbCallback(WM_MESSAGE * pMsg) {  int i;  int NCode, Id;  WM_HWIN hDlg, hItem;  hDlg = pMsg->hWin;  switch (pMsg->MsgId) {    case WM_PAINT:      _OnPaint();      return;    case WM_INIT_DIALOG:      for (i = 0; i < 3; i++) {        hItem = WM_GetDialogItem(hDlg, GUI_ID_SLIDER0 + i);        SLIDER_SetRange(hItem, 0, 255);        SLIDER_SetValue(hItem, _aColorSep[i]);        /* Init EDIT-widgets */        hItem = WM_GetDialogItem(hDlg, GUI_ID_EDIT0 + i);        EDIT_SetDecMode(hItem, _aColorSep[i],   0, 255, 0, 0);      }      break;    case WM_KEY:      switch (((WM_KEY_INFO*)(pMsg->Data.p))->Key) {        case GUI_KEY_ESCAPE:          ;          break;        case GUI_KEY_ENTER:          GUI_EndDialog(hDlg, 0);          break;      }      break;    case WM_NOTIFY_PARENT:      Id    = WM_GetId(pMsg->hWinSrc);      /* Id of widget */      NCode = pMsg->Data.v;                 /* Notification code */      switch (NCode) {        case WM_NOTIFICATION_RELEASED:      /* React only if released */          if (Id == GUI_ID_OK) {            /* OK Button */            GUI_EndDialog(hDlg, 0);          }          if (Id == GUI_ID_CANCEL) {        /* Cancel Button */            GUI_EndDialog(hDlg, 1);          }          break;        case WM_NOTIFICATION_VALUE_CHANGED: /* Value has changed */          _OnValueChanged(hDlg, Id);          break;      }      break;    default:      WM_DefaultProc(pMsg);  }}/***********************************************************************       MainTask**       Demonstrates a dialog box************************************************************************/void MainTask(void) {  GUI_Init();  GUI_CURSOR_Show();  WM_SetCallback(WM_HBKWIN, _cbBkWindow);    WM_SetCreateFlags(WM_CF_MEMDEV);  /* Use memory devices on all windows to avoid flicker */  while (1) {    GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbCallback, 0, 0, 0);    GUI_Delay(1000);  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?