⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dialog_slidercolor.c

📁 移植到嵌入式上的科学计算器
💻 C
📖 第 1 页 / 共 3 页
字号:
*       _cbCallback
*/

/*
//houhh 20061018...
void AutoEndDialog(GUI_TIMER_MESSAGE* TimeMsg)
{
	GUI_EndDialog(TimeMsg->Context, 1);
}

static void _cbCallback(WM_MESSAGE * pMsg) {
	WM_HWIN hWin = pMsg->hWin;
	static GUI_TIMER_HANDLE Timer1; //houhh 20061018...
	switch (pMsg->MsgId) {
    case WM_INIT_DIALOG:
		Timer1 = GUI_TIMER_Create((GUI_TIMER_CALLBACK*)AutoEndDialog, 1000*4, hWin, 0); //houhh 20061018...
		break;		
	case WM_DELETE: //houhh 20061018...
		GUI_TIMER_Delete(Timer1);
		break;	
    default:
		WM_DefaultProc(pMsg);
	}
}

*/


//#include "windows.h"
//houhh 20061018...
/*
void AutoEndDialog(GUI_TIMER_MESSAGE* TimeMsg)
{
//	GUI_EndDialog(TimeMsg->Context, 1);
//	MessageBox(NULL, "ttt", "ttttt", 0);
}
*/
static void _cbCallback(WM_MESSAGE * pMsg) {
  int NCode, Id,i;
  WM_HWIN hEdit0, hEdit1, hEdit2, hEdit3, hListBox, hDropd0, hDropd1;
  WM_HWIN hWin = pMsg->hWin;
  //static GUI_TIMER_HANDLE Timer1;	//houhh 20061018...

  switch (pMsg->MsgId) {
    case WM_INIT_DIALOG:
      /*
      hEdit0   = WM_GetDialogItem(hWin, GUI_ID_EDIT0);
      hEdit1   = WM_GetDialogItem(hWin, GUI_ID_EDIT1);
      hEdit2   = WM_GetDialogItem(hWin, GUI_ID_EDIT2);
      hEdit3   = WM_GetDialogItem(hWin, GUI_ID_EDIT3);
      hListBox = WM_GetDialogItem(hWin, GUI_ID_LISTBOX0);
      hDropd0  = WM_GetDialogItem(hWin, GUI_ID_DROPDOWN0);
      hDropd1  = WM_GetDialogItem(hWin, GUI_ID_DROPDOWN1);

      EDIT_SetText(hEdit0, "EDIT widget 0");
      EDIT_SetText(hEdit1, "EDIT widget 1");
      EDIT_SetTextAlign(hEdit1, GUI_TA_LEFT);
      EDIT_SetHexMode(hEdit2, 0x1234, 0, 0xffffff);
      EDIT_SetBinMode(hEdit3, 0x1234, 0, 0xffff);
      LISTBOX_SetText(hListBox, _apListBox);
      WM_DisableWindow (WM_GetDialogItem(hWin, GUI_ID_CHECK1));
      CHECKBOX_Check(  WM_GetDialogItem(hWin, GUI_ID_CHECK0));
      CHECKBOX_Check(  WM_GetDialogItem(hWin, GUI_ID_CHECK1));
      SLIDER_SetWidth( WM_GetDialogItem(hWin, GUI_ID_SLIDER0), 5);
      SLIDER_SetValue( WM_GetDialogItem(hWin, GUI_ID_SLIDER1), 50);
      SCROLLBAR_CreateAttached(hListBox, SCROLLBAR_CF_VERTICAL);
      DROPDOWN_AddString(hDropd0, "Item 0");
      DROPDOWN_AddString(hDropd0, "Item 1");
      DROPDOWN_AddString(hDropd0, "Item 2");
      DROPDOWN_AddString(hDropd1, "Item 0");
      DROPDOWN_AddString(hDropd1, "Item 1");
      DROPDOWN_AddString(hDropd1, "Item 2");
      DROPDOWN_AddString(hDropd1, "Item 3");
      DROPDOWN_AddString(hDropd1, "Item 4");
	  Timer1 = GUI_TIMER_Create((GUI_TIMER_CALLBACK*)AutoEndDialog, 1000*4, hWin, 0);	//houhh 20061018...
*/
		for (i=0; i< 20; i++) {
			int Pos = i;
			int x0 = 5  + 32*(Pos%4);
			int y0 = 75 + 32*(Pos/4);    
			//hBtn[i] = BUTTON_Create( x0, y0, 28, 28, idBtn+i,BUTTON_CF_SHOW );
			hBtn[i]   = WM_GetDialogItem(hWin, idBtn+i);
			WM_MoveTo(hBtn[i],x0,y0);
			//WM_MoveWindow(hBtn[i],28,28);
			//hBtn[i] = BUTTON_CreateAsChild( x0, y0, 28, 28,hWin, idBtn+i,BUTTON_CF_SHOW );
			BUTTON_SetText   (hBtn[i], strBtn[i]);
			hBtn[i+20] =WM_GetDialogItem(hWin, idBtn+i+20);
			WM_MoveTo(hBtn[i+20],x0+130,y0);
			//WM_MoveWindow(hBtn[i+20],10,10);
			//hBtn[i+20] = BUTTON_Create( x0+130, y0, 28, 28, idBtn+i+20,BUTTON_CF_SHOW );
			//hBtn[i+20] = BUTTON_CreateAsChild( x0+130, y0, 28, 28, hWin,idBtn+i+20,BUTTON_CF_SHOW );
			BUTTON_SetText   (hBtn[i+20], strBtn[i+20]);
		}
		//hEdit = EDIT_Create( 5, 20, 220, 75, ' ', 1024, 0 );
		hEdit = EDIT_CreateAsChild( 3, 20, 220, 35,hWin, idBtn+50, WM_CF_SHOW,1024);
      break;
    case WM_KEY:
		//MyProcess(((WM_KEY_INFO*)(pMsg->Data.p))->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);    /* 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_MessageBox("This text is shown\nin a message box",
                   "Caption/Title", GUI_MESSAGEBOX_CF_MOVEABLE);

          //  GUI_EndDialog(hWin, 0);
          }
          if (Id == GUI_ID_CANCEL) {      /* Cancel Button */
            GUI_EndDialog(hWin, 1);
          }
		  MyProcess(Id);
          break;
      }
      break;
	 case WM_DELETE:	//houhh 20061018...
	//	GUI_TIMER_Delete(Timer1);
		break;
    default:
      WM_DefaultProc(pMsg);
  }
}

/*********************************************************************
*
*       MainTask
*
*       Demonstrates a dialog box
*
**********************************************************************
*/



void MainTask(void) {

  GUI_Init();
  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(100);
//  }
}


/*********************************************************************
*
*       Static data
*
**********************************************************************
*/


#include "BUTTON.h"
//#include "BUTTON_Private.h"

#include "stdio.h"
//#include "windows.h"


//extern GUI_CONST_STORAGE GUI_BITMAP bmgreenbutton;
//extern GUI_CONST_STORAGE GUI_BITMAP bmlogo;
//extern GUI_CONST_STORAGE GUI_BITMAP bmgreenbuttonlow;
const GUI_BITMAP * pBmp; //pointer to const bitmap

/*************************************************************
*
*       _cbBkWin - Callback for WM_HBKWIN (entire LCD)
*/
static void _cbBkWin(WM_MESSAGE* pMsg)
{
	int Id;
	WM_HWIN hWin_1;
	//BUTTON_Handle hBut;
	//   hWin_1=pMsg->MsgId;
	hWin_1=pMsg->hWin;	//houhh 20061019
	switch (pMsg->MsgId) {
	case WM_PAINT:
		GUI_SetColor(GUI_WHITE);
		GUI_SetBkColor(GUI_WHITE);
		GUI_Clear();
		GUI_DispStringAt("Hello World!", 20, 30);

		//  GUI_DrawBitmap(&bmlogo, 25,41);
		break;
	case WM_NOTIFY_PARENT:
		/*if (pMsg->Data.v == WM_NOTIFICATION_RELEASED) {
			Id = WM_GetId(pMsg->hWinSrc);      
			if (Id == GUI_ID_BUTTON0){
				//	GUI_EndDialog(hWin_1, 0);
				char buf[255];
				static int i = 0;
				sprintf(buf, "%d:Hello World!", i++);
				GUI_SetColor(GUI_RED);
			//	GUI_SetBkColor(GUI_WHITE);
				WM_SelectWindow(hWin_1);
				GUI_DispStringAt(buf, 20, 30);
				//	GUI_DispString("Hello World!");
				
			}
		}*/
		break;
	default:
		WM_DefaultProc(pMsg);
	}
}
/*********************************************************************
*
*       _cbButton
*
* Purpose: 
*  1. Calls the owner draw function if the WM_PAINT message has been send
*  2. Calls the original callback for further messages
*  3. After processing the messages the function evaluates the pressed-state
*     if the WM_TOUCH message has been send
*/
//static void _cbButton(WM_MESSAGE *pMsg) {
// WM_HWIN hDlg;
// hDlg=pMsg->MsgId;
// if (pMsg->MsgId == WM_TOUCH) { 
//  
//  GUI_EndDialog(hDlg, 1);}
      
//}
/*********************************************************************
*
*       MainTask
*
**********************************************************************
*/
/*
void MainTask_FreeError(void)
{
	WM_HWIN  hWin_1;
	BUTTON_Handle hBut;
	GUI_Init();

	WM_SetCreateFlags(WM_CF_MEMDEV);
	WM_EnableMemdev(WM_HBKWIN);
	WM_SetDesktopColor(GUI_GREEN);
	{
		hWin_1=WM_CreateWindow(0,0,320,240,WM_CF_SHOW, _cbBkWin, 0 );
		//GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), &_cbDialog, 0, 0, 0);	
	
		//   pBmp = &bmgreenbutton;
		//   hBut = BUTTON_CreateEx(120, 170, ((U16P) pBmp->XSize), ((U16P) pBmp->YSize),
		//							hWin_1, WM_CF_HIDE, 0, GUI_ID_BUTTON0);
		//houhh 20061019
		hBut = BUTTON_CreateEx(120, 170, 80, 20,
			hWin_1, WM_CF_HIDE, 0, GUI_ID_BUTTON0);	
		//   BUTTON_SetBitmap(hBut,BUTTON_BI_UNPRESSED,&bmgreenbutton);
		//   BUTTON_SetBitmap(hBut,BUTTON_BI_PRESSED,&bmgreenbuttonlow);
				
		WIDGET_SetEffect(hBut,&WIDGET_Effect_None);
		BUTTON_SetFocussable(hBut,0);
		WM_ShowWindow(hBut);
		//	WM_SetCallback(hBut, _cbButton);

		//	hWin_2=WM_CreateWindow(0,0,320,240,WM_CF_SHOW, 0, 0 );
		//	GUI_Delay(100);	//houhh 20061019
	}

//houhh 20061019	
	while (1) {
		if (!GUI_Exec()) {
			GUI_X_WAIT_EVENT();      
		}
	}
}
*/

/*******************************************************************
*
*       _cbWindow1
*/
static void _cbWindow1(WM_MESSAGE* pMsg) {
  int x, y;
  switch (pMsg->MsgId) {
  case WM_PAINT:
//    GUI_SetBkColor(_WindowColor1);
//    GUI_Clear();
    GUI_SetColor(GUI_WHITE);
    GUI_SetFont(&GUI_Font24_ASCII);
    x = WM_GetWindowSizeX(pMsg->hWin);
    y = WM_GetWindowSizeY(pMsg->hWin);
    GUI_DispStringHCenterAt("Window 1", x / 2, (y / 2) - 12);
    break;
  default:
    WM_DefaultProc(pMsg);
  }
}

void MainTask_button(void)
{
	int i;
	WM_HWIN Win1, Button1, Edit1;
	GUI_Init();
	Win1 = WM_CreateWindow(0,0,320,240,WM_CF_SHOW,NULL,0);
//	Win1 = WM_CreateWindow(0,0,320,240,WM_CF_SHOW,_cbWindow1,0);	//houhh 20061024...
	
	WM_SelectWindow(Win1);
	
    GUI_SetColor(GUI_WHITE); 
	GUI_SetBkColor(GUI_BLUE);
	GUI_SetFont(&GUI_Font32_ASCII); 
	GUI_Clear(); 
//  GUI_Delay(200);
//	while(1);
	
	Button1 = BUTTON_CreateAsChild(110,20,240,40,Win1,GUI_ID_OK,WM_CF_SHOW); 
	
	
	BUTTON_SetText(Button1,"ADS"); 
	BUTTON_SetBkColor(Button1,0,GUI_YELLOW);
	WM_Paint(Button1); 
//	while(1);


	BUTTON_SetState(Button1,BUTTON_STATE_PRESSED);
	
	for (i=0;i<3000000;i++); 
	
	BUTTON_SetBkColor(Button1,1,GUI_LIGHTRED);  
	WM_Paint(Button1); 
	
	// Edit1 = EDIT_Create(200,200,300,40,GUI_ID_OK,12,WM_CF_SHOW);  //位置
	Edit1 = EDIT_CreateAsChild(200,200,100,40,Win1,GUI_ID_OK,WM_CF_SHOW,12);
	EDIT_SetText(Edit1,"1234");          //内容
	EDIT_SetBkColor(Edit1,1,GUI_GREEN);        //按下背色
	EDIT_SetTextColor(Edit1,0,GUI_RED);        //字体颜色
	EDIT_SetFont(Edit1,&GUI_Font24_ASCII);        //字体大小
	EDIT_SetTextAlign(Edit1,GUI_TA_HCENTER|GUI_TA_VCENTER);   //对齐方式
	WM_Paint(Edit1); 
//	while(1);
	
	while (1) {
		if (!GUI_Exec())
			GUI_X_ExecIdle();
	}
}


⌨️ 快捷键说明

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