📄 message.c
字号:
#include<config.h>
#include<head.h>
#define MSGLEN 10
MSG idata msgbuf[MSGLEN];
Uchar msgbufwp=0,msgbufrp=0;
void MessageInit()
{
char i;
for(i=0;i<MSGLEN;i++)
msgbuf[i].message=0;
}
/**************************************************************************
* 函数原型:void SysPostMessage(char message,char param,char mode);
* 功 能:发送消息。
* 入 口: 消息类型,消息值
**************************************************************************/
void SysPostMessage(char message,char param,char mode)
{
char i;
if(mode==1)
{
for(i=0;i<MSGLEN;i++)
if(msgbuf[i].message==message)
{
msgbuf[i].param+=param;
return;
}
}
msgbuf[msgbufwp].message=message;
msgbuf[msgbufwp++].param=param;
if(msgbufwp>=MSGLEN)msgbufwp=0;
}
/**************************************************************************
* 函数原型:void PostMessageOne(char message,char param);
* 功 能:发送一次性消息。
* 入 口: 消息类型,消息值
**************************************************************************/
void PostMessageOne(char message,char param)
{
SysPostMessage(message,param,1);
}
/**************************************************************************
* 函数原型:void PostMessageOne(char message,char param);
* 功 能:发送一次性消息。
* 入 口: 消息类型,消息值
**************************************************************************/
void PostMessage(char message,char param)
{
SysPostMessage(message,param,0);
}
/**************************************************************************
* 函数原型:void GetMessage(MSG *msg);
* 功 能:接收消息消息。
* 入 口: 消息结构的地址
* 出 口: 成功获得信息为1,没有获得信息为0
**************************************************************************/
BOOL GetMessage(MSG *pMsg)
{
Uchar i,j;
for(i=0;i<MSGLEN;i++)
{
j=(i+msgbufrp)%MSGLEN;
if(msgbuf[j].message)
{
pMsg->message=msgbuf[j].message;
pMsg->param=msgbuf[j].param;
msgbuf[j].message=0;
if(++msgbufrp>=MSGLEN)msgbufrp=0;
return 1;
}
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -