b2c信息网

您现在的位置是:首页 > 热点事件 > 正文

热点事件

包含emwin双缓冲源码的词条

hacker2022-06-10 13:03:15热点事件66
本文目录一览:1、littlevgl和emwin哪个耗资源

本文目录一览:

littlevgl和emwin哪个耗资源

littlevg耗资源,因为littlevg 是一个免费的开放源代码图形库,它提供创建嵌入式 GUI 所需的 一切,它具有易于使用的图形元素,精美的视觉效果和低内存占用。

emwin中checkbox怎么用

复选框是选择各种不同选项的最常用控件之一。用户可选中或取消选中复选框,并且可一次选中任意个框。使用键盘界面时,被聚焦的复选框的状态可使用SPACE键切换。禁用的框显示为灰色,如下图所示,其中描述了每种可能的复选框的外观:

开启皮肤色后显示效果如下:

41.2 官方WIDGET_CheckBox实例

官方的这个例子做的很好,充分的演示了复选框的各个状态。这个例子在模拟器中的位置:

41.2 源代码如下(主要看WIDGET_Checkbox中的代码):

#include stddef.h

#include "GUI.h"

#include "DIALOG.h"

#include "Main.h"

/*********************************************************************

*

* Static data

*

**********************************************************************

*/

//

// Dialog resource

//

static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = {(1)

{ FRAMEWIN_CreateIndirect, "Check box sample", 0, 10, 10, 300, 220, FRAMEWIN_CF_MOVEABLE},

{ TEXT_CreateIndirect, "Enabled:", 0, 5, 10, 120, 0 },

{ CHECKBOX_CreateIndirect, 0, GUI_ID_CHECK0, 5, 30, 120, 0 },

{ CHECKBOX_CreateIndirect, 0, GUI_ID_CHECK1, 5, 60, 120, 0 },

{ CHECKBOX_CreateIndirect, 0, GUI_ID_CHECK2, 5, 90, 120, 20 },

{ CHECKBOX_CreateIndirect, 0, GUI_ID_CHECK3, 5, 125, 120, 26 },

{ TEXT_CreateIndirect, "Disabled:", 0, 150, 10, 120, 0 },

{ CHECKBOX_CreateIndirect, 0, GUI_ID_CHECK4, 150, 30, 120, 0 },

{ CHECKBOX_CreateIndirect, 0, GUI_ID_CHECK5, 150, 60, 120, 0 },

{ CHECKBOX_CreateIndirect, 0, GUI_ID_CHECK6, 150, 90, 120, 26 },

{ CHECKBOX_CreateIndirect, 0, GUI_ID_CHECK7, 150, 125, 120, 26 },

{ BUTTON_CreateIndirect, "OK", GUI_ID_OK, 10, 170, 60, 20 },

{ BUTTON_CreateIndirect, "Cancel", GUI_ID_CANCEL, 225, 170, 60, 20 },

};

//

// Check box text

//

static const char * _apLabel[] = {(2)

"Default",

"3 States",

"Box XL",

"Box XXL"

};

/*********************************************************************

*

* Static code

*

**********************************************************************

*/

/*********************************************************************

*

* _cbCallback

*/

static void _cbCallback(WM_MESSAGE * pMsg) {

WM_HWIN hDlg;

WM_HWIN hItem;

int i;

int NCode;

int Id;

hDlg = pMsg-hWin;

switch (pMsg-MsgId) {

case WM_INIT_DIALOG:

WM_GetDialogItem(hDlg, GUI_ID_CHECK0);

for (i = 0; i 8; i++) {(3)

int Index = i % 4;

hItem = WM_GetDialogItem(hDlg, GUI_ID_CHECK0 + i); // Get the handle of the desired checkbox

CHECKBOX_SetText(hItem, _apLabel[Index]); // Set the check box text(4)

switch (Index) {

case 1:(5)

//

// Set the number of possible states to 3

//

CHECKBOX_SetNumStates(hItem, 3);(6)

//

// Use user defined bitmaps for the third state

//(7)

CHECKBOX_SetImage(hItem, _abmBar[0], CHECKBOX_BI_INACTIV_3STATE); // Used if widget is disabled

CHECKBOX_SetImage(hItem, _abmBar[1], CHECKBOX_BI_ACTIV_3STATE); // Used if widget is enabled

CHECKBOX_SetState(hItem, 2);(8)

break;

case 2:(9)

CHECKBOX_SetState(hItem, 1);

//

// Use user defined bitmaps for the 'checked' state

//

CHECKBOX_SetImage(hItem, _abmXL[0], CHECKBOX_BI_INACTIV_CHECKED); // Used if widget is disabled

CHECKBOX_SetImage(hItem, _abmXL[1], CHECKBOX_BI_ACTIV_CHECKED); // Used if widget is enabled 

CHECKBOX_SetFont(hItem, GUI_FontComic18B_ASCII);

break;

case 3:(10)

CHECKBOX_SetState(hItem, 1);

//

// Use user defined bitmaps for the 'checked' state

//

CHECKBOX_SetImage(hItem, _abmXXL[0], CHECKBOX_BI_INACTIV_CHECKED); // Used if widget is disabled

CHECKBOX_SetImage(hItem, _abmXXL[1], CHECKBOX_BI_ACTIV_CHECKED); // Used if widget is enabled 

CHECKBOX_SetFont(hItem, GUI_FontComic24B_ASCII);

break;

}

//

// Disable all check boxes shown on the right side of the dialog

//

if (i = 4) {(11)

WM_DisableWindow(hItem);

}

}

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;

}

break;

default:

WM_DefaultProc(pMsg);

}

}

/*********************************************************************

*

* Public code

*

**********************************************************************

*/

/*********************************************************************

*

* MainTask

*/

void MainTask(void) {

#if GUI_SUPPORT_MEMDEV

WM_SetCreateFlags(WM_CF_MEMDEV);

#endif

GUI_Init();

WM_SetDesktopColor(GUI_BLACK);

while (1) {

GUI_ExecDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbCallback, 0, 0, 0);

GUI_Delay(500);

}

}

41.1.1 复选框支持的通知代码

以下事件是复选框控件作为WM_NOTIFY_PARENT消息的一部分发送给其父窗口的:

消息 描述 

WM_NOTIFICATION_CLICKED 复选框已被点击。 

WM_NOTIFICATION_RELEASED 复选框已被释放。 

WM_NOTIFICATION_MOVED_OUT 复选框已被点击,且指针已移出复选框并且没有释放。 

WM_NOTIFICATION_VALUE_CHANGED 复选框的状态已改变。 

41.1.2 按钮支持键盘反应

如果控件具有输入焦点,则它将对下列各键做出反应:

按键 反应 

GUI_KEY_SPACE 切换小工具的选中状态

嵌入式linux可以用emwin吗

可以! 因为 用 emWin 开发软件时无需目标系统;大多数软件都可使用模拟器进行开发。当然,最终目的通常是能在目标系统上运行软件。

emWin 设计用于提供高效且独立于处理器和显示控制器的图形用户界面(提供不依赖处理器与控制器的用户接口),用于任何使用图形显示进行操作的应用。它与单任务和多任务环境、专用操作系统或具有任何商业 RTOS 兼容,emWin 的发货形式为 C 语言源代码。它可适用于任何尺寸的、具有任何显示控制器和 CPU 的物理和虚拟显示器。

发表评论

评论列表

  • 离鸢野梦(2022-06-10 18:23:26)回复取消回复

    // Used if widget is enabled CHECKBOX_SetFont(hItem, GUI_FontComic24B_ASCII);break;}//// Disable all

  • 假欢辞别(2022-06-10 18:44:03)回复取消回复

    *************///// Dialog resource//static const GUI_WIDGET_CREATE_INFO _aDialogCreate[]

  • 囤梦笙沉(2022-06-10 21:33:25)回复取消回复

    _INACTIV_3STATE); // Used if widget is disabledCHECKBOX_SetImage(hItem, _abmBar[1], CHECKBOX_BI_ACTIV_3STATE); // Used

  • 拥嬉莘夏(2022-06-10 21:17:22)回复取消回复

    源littlevg耗资源,因为littlevg 是一个免费的开放源代码图形库,它提供创建嵌入式 GUI 所需的 一切,它具有易于使用的图形元素,精美的视觉效果和低内存占用。