第49章emWin(ucgui)MESSAGEBOX-消息框控件
C#winform中MessageBox用法大全(附效果图)

C#winform中MessageBox用法大全(附效果图)C# winform 中MessageBox用法大全(附效果图)2012-11-22 09:34 33648人阅读评论(0) 收藏举报分类:Winform(25)我们在程序中经常会用到MessageBox。
MessageBox.Show()共有21中重载方法。
现将其常见用法总结如下:1.MessageBox.Show(“Hello~~~~”);最简单的,只显示提示信息。
2.MessageBox.Show(“There are something wrong!”,“ERROR”);可以给消息框加上标题。
3.if(MessageBox.Show(“Delete this user?”, “Confirm Message”, MessageBoxButtons.OKCancel) == DialogResult.OK) {//delete}询问是否删除时会用到这个。
4.if(MessageBox.Show(“Delete this user?”, “Confirm Message”,MessageBoxButtons.OKCancel,MessageBoxIcon.Question) ==DialogResult.OK){//delete}可以给MessageBox加上一个Icon,.net提供常见的Icon共选择。
5.if(MessageBox.Show(“Delete this user?”, “Confirm Message”, MessageBoxButtons.OKCancel, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2) == DialogResult.OK){//delete}可以改变MessageBox的默认焦点,如下:6.if(MessageBox.Show(“Delete this user?”, “Confirm Message”, MessageBoxButtons.OKCancel, MessageBoxIcon.Question,MessageBoxDefaultButton.Button2, MessageBoxOptions.RtlReading) == DialogResult.OK) {//delete}反向显示:7.if(MessageBox.Show(“Delete this user?”, “Confirm Message”, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2, MessageBoxOptions.RightAlign,true) == DialogResult.OK) {//delete}添加Help按钮:8.if(MessageBox.Show(“Delete this user?”, “Confirm Message”, MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading, @”/folder/file.htm”) == DialogResult.OK){//delete}指定帮助文件的路径,点击即可打开该路径下的帮助文件。
emWin(UCGUI)STemWin外语支持(精品)

第17章STemWin外语支持本期教程的主要内容来自官方的用户手册,我这里专门的把这里的内容整理出一章主要是通过一些实例来帮助大家理解。
阿拉伯语、泰语或汉语等外语文本一般含有emWin标准字体以外的字符。
本章将介绍一些基本知识,比如定义全球所有可用字符的Unicode标准,以及UTF-8编码方案,emWin 使用该方案来解码以Unicode字符编写的文本。
同时还将说明如何启用阿拉伯语支持,以及如何采用Shift-JIS(日本工业标准)编码方案来显示文本。
17. 1 Unicode17. 2 阿拉伯语支持17. 3 泰语支持17. 4 Shift JIS支持17. 5 总结17.1Unicode关于unicode的编码方面的知识在百度百科或者wiki百科上面有详尽的介绍,初学的一定要认真的看一下,了解这方面的知识对于以后学习大有裨益。
这里我们主要的介绍一下UTF-8。
17.1.1UTF-8 编码方案Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。
Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。
码位就是可以分配给字符的数字。
UTF-8,UTF-16,UTF-32都是将数字转换到程序数据的编码方案。
ISO/IEC 10646-1定义了一种称为通用字符集(UCS)的多八位字符集,收入了全球大多数文字系统。
然而,多八位字符并不兼容许多现有的应用程序和协议,因此就扩展出了一些各有特色的UCS转换格式(UTF)。
举个例子帮助大家理解,在Unicode中,汉字“字”对应的数字是23383(十进制),十六进制表示为0x5B57。
在Unicode中,我们有很多方式将数字23383表示成程序中的数据,包括:UTF-8,UTF-16,UTF-32。
UTF是“UCS Transformation Format”的缩写,可以翻译成Unicode字符集转换格式,即怎样将Unicode定义的数字转换成程序数据。
emwin快速设计界面的方法 -回复

emwin快速设计界面的方法-回复如何使用emwin快速设计界面。
emwin(Embedded Wizard)是一种用于嵌入式系统开发的图形用户界面(GUI)设计工具,它提供了丰富的组件库和定制化选项,使开发人员能够快速设计和开发高质量的用户界面。
本文将分为以下几个步骤,介绍如何使用emwin快速设计界面。
第一步:准备开发环境在使用emwin之前,需要先准备好开发环境。
首先,确保你的嵌入式系统支持emwin,并已经安装了emwin的开发软件包。
然后,根据开发系统的要求,配置好编译器和调试工具。
最后,在你的开发板上连接显示屏,并确保能够正确驱动显示。
第二步:创建新工程在emwin的开发环境中,创建一个新的工程是开始设计界面的第一步。
打开emwin的开发软件包,并选择“新工程”选项。
根据你的项目需求,设置工程的名称和路径。
然后,选择一个适当的目标设备和显示分辨率,并设置其他工程属性。
点击“确定”按钮,创建一个新的emwin 工程。
第三步:设计界面在emwin的工程中,设计界面是一个非常重要的任务。
emwin提供了一个方便的可视化界面设计器,可以让你通过拖放组件来快速创建用户界面。
首先,选择一个适当的窗口尺寸,并在界面设计器中创建一个新窗口。
然后,在工具箱中选择你需要的组件(如按钮、文本框、图像等),并将它们拖放到窗口中。
接下来,通过调整组件的大小和位置,以及设置组件的属性,来定制化界面。
emwin的界面设计器支持多种属性设置,例如背景颜色、文字字体、按钮样式等。
通过设置这些属性,你可以根据你的项目需求来设计出一个高效美观的界面。
第四步:添加交互逻辑设计一个界面只是第一步,为了使界面具有实际的功能,还需要添加一些交互逻辑。
emwin提供了一种基于事件的编程模型,可以让你很方便地添加交互逻辑。
通过选择一个组件,并在属性面板中设置事件回调函数,你可以将该组件与一个自定义的处理函数进行关联。
在处理函数中,你可以针对不同的事件类型(如按钮点击、滑动等)编写相应的逻辑。
emwin消息机制

emwin消息机制
emWin的消息机制是其核心部分,负责处理所有在触控界面上的操作。
例如,当用户触摸一个按钮、滚动条或编辑框等控件时,都会触发窗口管理器去处理这些消息。
处理完消息后,会跳转到窗口回调函数的相应部分,在这些部分中添加所需的功能。
emWin的窗体管理基本框架也是基于窗体消息处理机制,即对窗体内的事务处理都是将各个事件作为窗体消息来响应执行。
例如,当程序首次启动或者窗口被移动时,系统就会触发WM_PAINT消息以重绘页面。
emWin的消息机制不仅包括了消息结构与类型的概念,还涉及到窗口回调机制的应用。
通过这样的机制,可以高效地处理各种用户交互事件,并实现相应的功能。
uCGUI使用

uCGUI使⽤最好多参考⼏篇⽂章,⽐如UC/GUI中⽂⼿册与emWin5_UM_SC0:画图函数GUI_DrawRect:在当前窗⼝中的指定位置绘制矩形(不填充,画线颜⾊为前景⾊)void GUI_DrawRect(int x0, int y0, int x1, int y1);在当前窗⼝中的指定位置绘制填充的矩形区域(填充前景⾊)(填充前景⾊)GUI_FillRect:在当前窗⼝中的指定位置绘制填充的矩形区域:清除矩形区域(为矩形区域填充背景颜⾊,图形界⾯⽤填充背景⾊达到清除屏幕的矩形区域填充背景颜⾊,图形界⾯⽤填充背景⾊达到清除屏幕的GUI_ClearRect:清除矩形区域(为)效果)效果1:存储设备不使⽤存储设备时,绘制操作直接写⼊显⽰器。
屏幕在执⾏绘制操作时随时更新,从⽽在进⾏各种更新时使屏幕闪烁。
如果在此过程中使⽤存储设备,则所有绘制操作都在存储器中执⾏。
仅在所有操作都完成后才将最终结果显⽰在屏幕上,其优点是没有闪烁。
如果不使⽤存储设备,则可以看到⼀步步的绘制操作效果,缺点是会出现显⽰器闪烁。
使⽤存储设备时,⼀次可见到所有例程的效果,就象单次操作⼀样,不能实际看见中间步骤。
以下例程是在使⽤存储设备时通常会调⽤的,基本⽤法⾮常简单:1. 创建存储设备(使⽤GUI_MEMDEV_Create() )。
2. 激活它(使⽤GUI_MEMDEV_Select() )。
3. 执⾏绘制操作。
4. 将结果复制到显⽰器中(使⽤GUI_MEMDEV_CopyToLCD() )。
5. 不再需要它时,删除该存储设备(使⽤ GUI_MEMDEV_Delete() )。
2:WM窗⼝管理器回调例程:回调例程由⽤户程序定义,指⽰在特定事件出现时图形系统调⽤特定的函数。
它们通常⽤于在窗⼝内容更改时⾃动重绘窗⼝。
窗⼝管理器的默认特性是向每个需要重绘的窗⼝发送⼀条 WM_PAINT 。
当⽤户对窗⼝有操作时,WM会发送相应的消息给该窗⼝,窗⼝可通过回调函数根据消息直接对屏(没有⽤存储设备时)或对窗⼝的存储设备进⾏操作再拷贝到屏幕上,具体的消息说明可以参考emWin的中⽂⼿册。
messageboxex的用法

messageboxex的用法1.简介在编程领域中,`mes s ag eb ox ex`是一种常用的对话框窗口控件,用于在用户界面中显示信息、警告或错误消息。
它通常用于与用户进行简单的交互,如询问是否继续执行某个操作,或者提醒用户某些重要信息。
本文将介绍`m es sa ge bo x ex`的相关用法和常见选项。
2.基本语法使用`m es sa ge bo xex`函数,通常需要提供以下参数:```p yt ho nM e ss ag eB ox Ex(h wnd,te xt,c ap ti on,ty p e)```-`hw nd`:可选参数,指定消息框父窗口的句柄(如果有)。
-`te xt`:必需参数,指定消息框中显示的文本内容。
-`ca pt io n`:可选参数,指定消息框的标题。
-`ty pe`:必需参数,指定消息框的类型,如消息图标、按钮等。
3.消息框类型3.1.消息图标`t yp e`参数可以选择不同的消息图标,常见的选项包括:-`MB_I CO NE RR OR`:显示错误图标。
-`MB_I CO NW AR NI NG`:显示警告图标。
-`MB_I CO NI NF OR MAT I ON`:显示信息图标。
-`MB_I CO NQ UE ST ION`:显示询问图标。
3.2.按钮类型`t yp e`参数还可以选择不同的按钮类型,常见的选项包括:-`MB_O K`:只显示一个确定按钮。
-`MB_O KC AN CE L`:显示一个确定按钮和一个取消按钮。
-`MB_Y ES NO`:显示一个是按钮和一个否按钮。
-`MB_Y ES NO CA NC EL`:显示一个是按钮、一个否按钮和一个取消按钮。
4.示例代码以下是一个使用`mes s ag eb ox ex`的示例代码:```p yt ho ni m po rt ct yp esd e fm ai n():u s er32=c ty pe s.win d ll.u se r32m e ss ag eb ox=u se r32.Me ss ag eB ox Ex Wt e xt="这是一个示例消息框!"c a pt io n="消息框示例"显示信息图标和确定按钮r e su lt=m es sa ge box(No ne,t ex t,ca pti o n,ty pe)i f re su lt==1:p r in t("用户点击了确定按钮。
uCGUI(emWin)的应用与移植

uCGUI(emWin)的应用与移植uC/GUI(emWin)的应用与移植 2006-11-19 01:38当你开始使用emWin进行编程时,通常遵循以下的步骤:第1步:配置emWin第一步通常是通过修改头文件LCDConf.h来配置emWin。
LCDConf.h中的宏定义描述了LCD显示部分硬件特性;根据你的具体情况修改这些宏定义(例如显示屏的长、宽,每像素点用几位表示,LCD控制器的类型等参数)。
第2步:定义LCD的底层驱动函数底层函数包括对LCD(控制器)的初始化函数,LCD显示缓冲区的读写函数等,完成对LCD显示硬件的直接操作。
对于映射在系统存储器上的LCD,对显示缓冲区的操作仅需要在LCDConf.h中进行定义就可以了。
但对于采用I/O端口/缓冲区操作的LCD,就必须定义相应的接口函数了。
第3步:编译,链接和测试例子代码emWin对于单任务和多任务环境下的应用都提供了例子代码。
在编程之前,对这些例子代码进行编译、链接和测试,使你能够初步了解这些代码的使用。
第4步:修改例子程序对例子代码作少量的修改。
逐步添加一些额外的指令,例如显示不同大小的文字,显示多行等等,从而进一步理解代码的应用。
第5步:emWin的多任务应用,加入到你的操作系统中如果你的系统有可能多个任务同时对显示进行操作,这时就要用到GUITask.C文件中的GUI_MAXTASK和GUI_OS宏。
第6步:采用emWin编写你自己的应用到这一步你应该对怎样使用emWin有一个清楚的了解了。
考虑如何采用emWin提供的函数来构建你的应用,并通过阅读手册来获得各函数更详细的功能和使用上的信息。
emWin的移植移植是指对emWin进行配置和修改,使它能够在你的目标系统上运行。
参考第3.4节中的第一步和第二步,移植工作主要是针对配置头文件中的宏定义进行修改。
这些宏包括:1. LCD宏,定义了显示的尺寸和一些可选择的特性(例如镜像,等等)2.LCD控制器宏,定义了怎样对控制器进行操作。
第47章emWin(ucgui)LISTBOX-列表框控件

/* 设置输入焦点 */ GUI_DispStringAtCEOL("WM_SetFocus", 5, 55); GUI_Delay(SPEED * 0.9); WM_SetFocus(hListBox); GUI_Delay(SPEED * 0.7);
/* 设置字体 */ GUI_DispStringAtCEOL("LISTBOX_SetFont", 5, 55); GUI_Delay(SPEED * 0.9); LISTBOX_SetFont(hListBox, &GUI_Font13B_1); GUI_Delay(SPEED * 0.7);
/* 设置相应的项目禁能 注意 0 是第一个项目 */ GUI_DispStringAtCEOL("LISTBOX_SetItemDisabled", 5, 55); GUI_Delay(SPEED); LISTBOX_SetItemDisabled(hListBox, 4, 1); GUI_Delay(SPEED * 0.75);
列表框已被点击,且指针已从列表框处移开,没有释放。
WM_NOTIFICATION_SCROLL_CHANGED 可选滚动条的滚动位置已更改。
WM_NOTIFICATION_SEL_CHANGED
列表框的选择内容已更改。
第1页 共8页
47.2官方 WIDGET_ListBox 实例
STM32-V5 开发板 STemWin 教程
/* 增加选项 */ GUI_DispStringAtCEOL("LISTBOX_IncSel", 5, 55); GUI_Delay(SPEED); NumEntries = LISTBOX_GetNumItems(hListBox); for (i = 0; i < NumEntries - 1; i++) {
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第49章MESSAGEBOX-消息框控件本期教程讲解STemWin支持的消息框控件。
49. 1 消息框控件介绍49. 2 官方DIALOG_MessageBox实例49. 3官方DIALOG_MessageBoxUser实例49. 4 总结49.1消息框控件介绍使用MESSAGEBOX控件可在带有标题栏和 “确定”按钮 (必须按下才能关闭窗口)的框架窗口中显示消息。
创建消息框或者创建并执行消息框仅需一行代码。
下表显示MESSAGEBOX小工具的外观:消息控件的使用比较简单,仅有两个相关的API:GUI_MessageBox()和MESSAGEBOX_Create()。
49.2官方DIALOG_MessageBox实例官方的这个实例很好的演示了MessageBox的使用,这个例子在模拟器中的位置:源码如下(程序中进行了详细的注释):---------------------------------------------------------------------- File : DIALOG_MessageBox.cPurpose : Example demonstrating GUI_MessageBoxRequirements: WindowManager - (x)MemoryDevices - (x)AntiAliasing - ( )VNC-Server - ( )PNG-Library - ( )TrueTypeFonts - ( )---------------------------------------------------------------------- */#include "GUI.h"#include "WM.h"/******************************************************************* ** Static code********************************************************************* *//********************************************************************* ** _cbBkWindow* 桌面窗口的回调函数*/static void _cbBkWindow(WM_MESSAGE* pMsg) {switch (pMsg->MsgId) {case WM_PAINT:GUI_SetBkColor(GUI_RED);GUI_Clear();GUI_SetColor(GUI_WHITE);GUI_SetFont(&GUI_Font24_ASCII);GUI_DispStringHCenterAt("DIALOG_MessageBox - Sample", 160, 5);break;default:WM_DefaultProc(pMsg);}}/********************************************************************* ** Public code*********************************************************************** *//********************************************************************* ** MainTask*/void MainTask(void) {GUI_Init();/* 开启窗口使用内存设备 */#if GUI_SUPPORT_MEMDEVWM_SetCreateFlags(WM_CF_MEMDEV);#endif/* 设置桌面窗口的回调函数 */WM_SetCallback(WM_HBKWIN, &_cbBkWindow);//// 创建消息框,等待直到他被关闭//while (1) {GUI_MessageBox("This text is shown\nin a message box","Caption/Title", GUI_MESSAGEBOX_CF_MOVEABLE);GUI_Delay(750); // 延迟一段时间GUI_MessageBox("New message !","Caption/Title", GUI_MESSAGEBOX_CF_MOVEABLE);GUI_Delay(750);}}实际显示效果如下:49.3官方DIALOG_MessageBoxUser实例官方的这个实例很好的演示了MessageBox的使用,这个例子在模拟器中的位置:源码如下(程序中进行了详细的注释):/*********************************************************************** Static code************************************************************************//*********************************************************************** _CreateMessageBox*/static WM_HWIN _CreateMessageBox(const char * sMessage, const char * sCaption, int Flags, const GUI_FONT * pFont) {WM_HWIN hWin;WM_HWIN hItem;GUI_RECT Rect;hWin = MESSAGEBOX_Create(sMessage, sCaption, Flags);//// 设置消息框中标题的字体,消息框本质上也是框架窗口,所以这里可以直接的调用修改//FRAMEWIN_SetFont(hWin, pFont);//// 调整大小//WM_GetWindowRectEx(hWin, &Rect);WM_SetWindowPos(hWin, Rect.x0 - 15,Rect.y0 - 15,Rect.x1 - Rect.x0 + 1 + 30,Rect.y1 - Rect.y0 + 1 + 30);//// 设置按钮控件的字体//hItem = WM_GetDialogItem(hWin, GUI_ID_OK);BUTTON_SetFont(hItem, pFont);//// 调节按钮控件的大小//WM_GetWindowRectEx(hItem, &Rect);WM_SetWindowPos(hItem, Rect.x0,Rect.y0 + 10,Rect.x1 - Rect.x0 + 1 + 30,Rect.y1 - Rect.y0 + 1 + 5);//// 设置文本控件的字体//hItem = WM_GetDialogItem(hWin, GUI_ID_TEXT0);TEXT_SetFont(hItem, pFont);//// 调节文本控件的大小//WM_GetWindowRectEx(hItem, &Rect);WM_SetWindowPos(hItem, Rect.x0,Rect.y0,Rect.x1 - Rect.x0 + 1 + 30,Rect.y1 - Rect.y0 + 1 + 12);return hWin;}/*********************************************************************** _EnableSkinning*/static void _EnableSkinning(void) {FRAMEWIN_SetDefaultSkin(FRAMEWIN_SKIN_FLEX);BUTTON_SetDefaultSkin (BUTTON_SKIN_FLEX);}/*********************************************************************** Public code************************************************************************//*********************************************************************** MainTask*/void MainTask(void) {GUI_Init();/* 使能皮肤 */_EnableSkinning();while (1) {GUI_SetFont(&GUI_Font20B_ASCII);GUI_DispStringHCenterAt("Applicatoin defined MESSAGEBOX", 160, 5);/* 执行已经创建的对话框 */GUI_ExecCreatedDialog(_CreateMessageBox("Message", "Caption", 0, &GUI_Font24));GUI_Clear();GUI_Delay(1000);}}实际显示效果如下:49.4总结本期教程主要是跟大家讲解了消息框的两种创建方法,一种是系统自带的,直接调用即可显示,也就是本期教程中的第一个例子。
另一种是用户的创建方式,这种模式下用户可以自定义在消息框中要显示的内容。