歡迎您光臨本站 登入註冊首頁

概述

uC/GUI3.90a的仿真窗口默認是320x240,如果要使用其它開小的窗口,除了要在LCDConf.h中將LCD_XSIZE和LCD_YSIZE設為指定大小外,還需要修改SystemSimulat……

uC/GUI3.90a的仿真窗口默認是320x240,如果要使用其它開小的窗口,除了要在LCDConf.h中將LCD_XSIZE和LCD_YSIZE設為指定大小外,還需要修改SystemSimulationSIM_X.c。 通常的uC/GUI的仿真窗口是Device型的,就是像一個開發板的樣子,而3.90a提供了Simulation的源代碼,可以很容易的修改為像uC-GUI-View那樣的窗口。對了,就是修改SIM_X.c! 以下是Sim_X.c的內容: //! 初始化仿真器 //! @note 仿真LCD的尺寸為320x240 void SIM_X_Init() { if (((LCD_GetDevCap(LCD_DEVCAP_XSIZE) *LCD_GetXMag()) == 320) && ((LCD_GetDevCap(LCD_DEVCAP_YSIZE) *LCD_GetYMag()) == 240) && (LCD_GetNumLayers() == 1)) { //SIM_SetLCDPos(71, 38);// 定義位圖中LCD的原點位置 SIM_SetLCDPos(-71, 38);// 定義位圖中LCD的原點位置--注意:就是這兒!!! SIM_SetTransColor(0xff0000);// 定義透明色(transparent color) /*SIM_SetLCDColorBlack(0, 0x808080);// 定義黑色(black color) SIM_SetLCDColorWhite(0, 0xc0c0c0);// 定義白色(white color)*/ } } 只需要將SetLCDPos的第一個參數改為負數,就可以表示使用uC-GUI-View那樣的窗口。當然你需要將if中的320,240改為你需要的窗口大小,比如640,480。然後編譯,運行,OK! 當然,這個時候窗口的Title顯示的還是320*240,不過既然是Title,不修改也沒什麼關係--如果堅持要修改的話,自個兒看代碼吧。 其實使用Device窗口還是通常視窗的關鍵是WinMain.c文件中的_WinMain_NoClean函數。下面是相關的代碼: // 使用器件模擬(device simulation)或標準窗口(standard window) if (_ahBmpDevice[0] && (_xPosLCD >= 0)) { BITMAP bmpDevice; Getobject(_ahBmpDevice[0], sizeof(bmpDevice), &bmpDevice);// 得到位圖信息 // 使用器件模擬,創建器件窗口(使用WS_EX_TOPMOST可在頂層顯示) _hWndMain = CreateWindowEx(0, acClassNameDevice, "Target device", WS_CLIPCHILDREN | WS_POPUP | WS_VISIBLE, 10, 20, bmpDevice.bmWidth, bmpDevice.bmHeight, 0, NULL, _hInst, NULL); } else { // 使用標準窗口,創建主窗口 _hWndMain = CreateWindow(acClassNameMain, BRANDING_GetAppNameLong(), WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN | WS_VISIBLE, CW_USEDEFAULT, 0, _GetXSizePhys() + 250, _GetYSizePhys() + 150, NULL, NULL, hInstance, NULL); if (!_hWndMain) { return FALSE; } _CreateWndLCD();// 創建仿真LCD窗口及其"調色板示例"窗口 _LOG_Create(_hInst, _hWndMain);// 創建Log窗口 } 顯然,只需要將xPosLCD 設為<0,就會使用_CreateWndLCD創建LCD窗口,否則如果存在Device位圖,就使用Dvice形式的窗口。其它的問題,看System下的Simulation源代碼吧!

[13686790492 via 研發互助社區 ] 如何修改uC/GUI的仿真窗口大小已經有122次圍觀

http://cocdig.com/docs/show-post-45547.html