特别说明:完整STemWin的1-60期教程和配套实例下载地址:链接
第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.c
- Purpose : Example demonstrating GUI_MessageBox
- Requirements: 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_MEMDEV
- WM_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);
- }
- }
复制代码实际显示效果如下: |