关闭

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

937人阅读 评论(0) 收藏 举报

 嵌入式系统中没有给我们提供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;
      }

}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:43608次
    • 积分:587
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:8篇
    • 译文:0篇
    • 评论:10条
    最新评论