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

本文探讨了在嵌入式系统中如何通过C语言实现一个模拟的MessageBox功能,以替代系统未提供的原生 MessageBox 函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值