1. littlevgl和emwin哪个耗资源
littlevg耗资源,因为咐族颤littlevg 是一个免费的开放源穗谈代码图形库,它提供创建嵌衡败入式 GUI 所需的 一切,它具有易于使用的图形元素,精美的视觉效果和低内存占用。
2. 电脑蓝屏 A problem has been detected and windows has been shut down to prevent damage的解决方法
电脑蓝屏 A problem has been detected and windows has been shut down to prevent damage的意思是:一个问题已经被发现同时窗户已经关闭以防止损坏。电脑蓝屏可以由很多原因引起,解决思路是先软件后硬件,即先检查软件问题,再检查硬件问题。
1、如果档穗芹蓝屏前安装了软件或驱动,进安全模式下,把新安装的软件及驱动卸载或删除后,再开机试下。
2、如果删除后仍然蓝屏,或根本进不了安全模式,则重新安装操作系统试下。
3、重装系统后仍然蓝屏,则考虑硬件问题。首先将电脑里面的灰尘彻底清理一下,将内存、显卡、PCI插槽上的设备拆下,用橡皮探试一下。因为灰尘引起温度过高、接触不良等也会造成蓝屏;同时将CPU、显卡等风扇拆下,更换新的散热硅胶;另外检查下所有硬件族坦的温度是否正常。
4、如果清洁电脑后还是不行,则用替换法检查电脑硬件,如果没有可替换的硬件或不熟悉电脑,建议找专业维修人员处理。
5、硬件替换按以下顺序进行排查:内存、硬盘、显卡、主板、电源、其它硬件、CPU。
6、采用替换法时最好拔掉电脑上所有连接线及开机不需要用到的硬件,只保留电源、主板、CPU、内存、显卡、硬盘、显示器。
7、排查时注意检查硬件上面是否有焦味,硬件上的电容是否有鼓包现象。
提示:替换法检查硬件问题多用于有多余硬件可替换、故障点不好直接判断的情况下,需要对电脑硬件有一定了解,如果不熟悉硬件,不行毕建议用替换法检查硬件故障。
3. emwin 能不能不需要操作系统而运行
可以!指带宽 因为 用 emWin 开发软件时无需目标系统;大多数软件都可使用模拟器进行开发。当然,最终目的通常是能在目标系统上运行软件。
emWin 设计用于提供高效且独立于处理器和显示控制器的图形用户界面(提供不依赖处理器与控制器的用户接口),用于任何使用行卜图形显示进行操作的应用。它与单任务和多任务环境、专用操作系统或具有任何商业 RTOS 兼容,emWin 的发货形式为 C 语言源代码。它可适用于任何唯亮尺寸的、具有任何显示控制器和 CPU 的物理和虚拟显示器。
4. emwin中checkbox怎么用
复选框是选择各种不同选项的最常用控件之一。用户可选中或取消选中复选框,并且可一次选中任意个框。使用键盘界面时,被聚焦的复选框的状态可使用<SPACE>键切换。禁用的框显示为灰色,如下图所示,其中描述了每种可能的复选框的外观:
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 切换小工具的选中状态