嵌入式C语言之屏幕操作之 模拟MessageBox函数

原创 2007年09月13日 14:46:00

 嵌入式系统中没有给我们提供MessageBox,但是鉴于其功能强大,我们需要模拟之,一个模拟MessageBox函数为:

 

/*****************************************************************************************************************
/*  函数名称:MessageBox
/*  功能说明:弹出式对话框,显示提醒用户的信息
/*  参数说明:lpStr ---提醒用户的字符串输出信息
/*  TYPE ---输出格式(ID OK = 0,ID OKCANCEL =1)
/*   返回值:返回 对话框接收的键值,只有两种KEY_OK,KEY_CANCEL
/*****************************************************************************************************************
typedef enum TYPE { ID_OK,ID_OKCANCEL }MSG_TYPE;
extern BYTE MessageBox( LPBYTE lpStr,BYTE TYPE)
{
     BYTE keyValue = -1;
     ClearScreen();                                               /* 清除屏幕
*/

     DisplayString(xPos,yPos,lpStr,TRUE);           
/*显示字符串*/
     
/* 根据对话框类型决定是否显示确定,取消*/
     
switch(TYPY)
     
{
         
case ID_OK:
             DisplayString( 
13, yPos+High+1"确定",0);
             
break;
         
case ID_OKCANCEL:
             DisplayString(
8, yPos+High+1"确定",0);
             DisplayString(
17, yPos+High+1"取消",0);
             
break;
         
default:
     }

     DrawRect(
0,0,239,yPos+High+16+4);   /*绘制外框*/
     
/*MessageBox是模式对话框,阻塞运行,等待按键*/
      
while((keyValue != KEY_OK) || (keyValue != KEY_CANCEL))
      
{
           keyValue 
= getSysKey();
      }
 
      
if(keyValue==KEY_OK)
      
{
           
return ID_OK;
      }

      
else
      
{
           retrn ID_CANCEL;
      }

}

相关文章推荐

嵌入式C语言专题三:屏幕操作篇

屏幕乃嵌入式系统生存之重要辅助,面目可憎之显示将另用户逃之夭夭。屏幕编程若处理不好,将是软件中最不系统、最混乱的部分,笔者曾深受其害。   内容要点: ·汉字处理 ·系统时间显示 ·动...
  • jeffade
  • jeffade
  • 2012年06月05日 20:48
  • 301

嵌入式C语言修炼之道.屏幕操作篇

汉字处理   现在要解决的问题是,嵌入式系统中经常要使用的并非是完整的汉字库,往往只是需要提供数量有限的汉字供必要的显示功能。例如,一个微波炉的LCD上没有必要提供显示"电子邮件"的功能;一个提...

Win32 SDK函数MessageBox的模拟实现(C语言版)

版本一:对于使用“掩码”传递参数的方法,简单的实现思路: #include #define MB_OK 0x00000000 #define MB_OKCANCE...

嵌入式C语言专题二:内存操作篇

C语言最精华的内涵皆在内存操作中体现。我们之所以在嵌入式系统中使用C语言进行程序设计,99%是因为其强大的内存操作能力!   如果你爱编程,请你爱C语言; 如果你爱C语言,请你爱指针; 如果...

嵌入式C语言专题四:键盘操作篇

计算机学的许多知识都具有相通性,因而,不断追赶时髦技术而忽略基本功的做法是徒劳无意的。我们最多需要"精通 "三种语言,最佳拍档是汇编、C、C++(或JAVA),很显然,如果你"精通"了这三种语言,其它...
  • jeffade
  • jeffade
  • 2012年06月05日 20:49
  • 257

嵌入式C语言修炼之道.内存操作篇

数据指针   在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语...

嵌入式C语言中printf函数的使用(二)——SWO引脚的巧妙应用

在Cortex-M3\M4系列MCU中,内核的调试组件都有一个仪器化跟踪单元(ITM)。ITM的一个主要的用途,就是支持调试信息的输出(例如,printf格式输出)。ITM包含了32个刺激端口,允许不...

嵌入式C语言笔记03——函数指针,内存陷阱,堆栈

嵌入式C语言笔记03——函数指针,内存陷阱,堆栈 http://insswer.iteye.com/blog/1040408 嵌入式C语言笔记03——函数指针,内存陷阱,堆栈 函数指...
  • wenhui_
  • wenhui_
  • 2011年09月19日 22:06
  • 2149

嵌入式面试总结-C语言函数相关

参考Bruce.yang大神的博客   http://blog.csdn.net/morixinguan 5、 分离16进制的高低位 #include #include intmain(void...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:嵌入式C语言之屏幕操作之 模拟MessageBox函数
举报原因:
原因补充:

(最多只允许输入30个字)