emWin的2D绘图不显示问题

emWin的2D绘图需要在回调函数内或者使用WM_SelectWindow()选择窗口并放在GUI_Exec()等之后才能正常显示,这点有很多别的帖子有详细解释,但是很多时候一定要在这两种情况之外的话可以在绘图前添加GUI_MULTIBUF_Begin(),绘制完成后添加GUI_MULTIBUF_End()显示。

简单举例如下:

GUI_MULTIBUF_Begin();

WM_SelectWindow(hWin);

GUI_SetPenSize(5);
GUI_DrawLine( 0, 0, 150, 0);

GUI_MULTIBUF_End();

GUI_Exec();

注意GUI_MULTIBUF_Begin()之后的绘图操作会在GUI_MULTIBUF_End()时一起显示,可以通俗的理解为遇到GUI_MULTIBUF_Begin()时拿出了一张透明纸,我们在上面完成一系列的绘画直到遇到GUI_MULTIBUF_End()时把这张纸直接放在WM_SelectWindow选择的那个窗口上。

关于这两个函数的官方解释如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值