如何修改uC/GUI的仿真窗口大小
2012-12-24
标签: uCGUI

uC/GUI3.90a的仿真窗口默认是320x240,如果要使用其它开小的窗口,除了要在LCDConf.h中将LCD_XSIZE和LCD_YSIZE设为指定大小外,还需要修改\System\Simulation\SIM_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源代码吧!

可能会用到的工具/仪表
本站简介 | 意见建议 | 免责声明 | 版权声明 | 联系我们
CopyRight@2024-2039 嵌入式资源网
蜀ICP备2021025729号