亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gui.c

?? PDA程序開發(fā)PDA程序開發(fā)PDA程序開發(fā)PDA程序開發(fā)PDA程序開發(fā)PDA程序開發(fā)PDA程序開發(fā)PDA程序開發(fā)
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*========================================================================
 *
 *  版權(quán)所有 (C) 2000-2001 吳柏建. All Rights Reserved.
 *
 *  文件:       gui.c
 *  內(nèi)容:		PSDE_DEMO_PDA處理顯示和消息的函數(shù)。
 *	作者:			吳柏建。
 *	制作日期:		2000.8.6-2001.10.6
 *	修改日期:		2001..
 *
 *========================================================================*/
#include "pda.h"

/*定義隊(duì)列中容納的消息數(shù)量*/
#define MSG_QUEUE_SIZE 128
/*定義全局的消息隊(duì)列*/
PDAMSG MsgQueue[MSG_QUEUE_SIZE];
/*定義全局消息隊(duì)列的寫指針*/
short MsgWrite=0;
/*定義全局消息隊(duì)列的讀指針*/
short MsgRead=0;

/*======================================================================
---向全局消息隊(duì)列MsgQueue中發(fā)送消息----SendMsg---
======================================================================*/
void SendMsg(PDAMSG *msg)
{
	short i=(1+MsgWrite)%MSG_QUEUE_SIZE;
	if(msg->type!=MSG_NULL)
	{
		MsgQueue[MsgWrite]=*msg;
		MsgWrite=i;
		if(i==MsgRead)MsgRead=(++MsgRead)%MSG_QUEUE_SIZE;
	}
}
/*======================================================================
---轉(zhuǎn)變TouchPanel坐標(biāo)為LCD坐標(biāo)消息和ICON消息----TranslateMsg---
======================================================================*/
void TranslateMsg(PDAMSG *pMsg)
{
	short i;
	RECT rc;

	if(pMsg->type!=MSG_PEN)return;
	if((pMsg->y<18||pMsg->y>178)&&pMsg->x>=2&&pMsg->x<162)
	{
		i=((pMsg->x-2)*10/160);
		rc.left=i*16+2;
		rc.right=16+rc.left;
		if(pMsg->y<18)
		{
			rc.top=1;
			rc.bottom=17;
		}
		else
		{
			i+=10;
			rc.top=179;
			rc.bottom=195;
		}
		while(pMsg->type==MSG_PEN)
		{
			if(!pMsg->PenStatus)
			{
				//ICON消息值為80~99。
				if(CheckPointInRect(pMsg->x,pMsg->y,&rc))pMsg->type=i+80;
				else pMsg->type=MSG_NULL;
				return;
			}
			GetMsg(pMsg);
		}
	}
	pMsg->type=MSG_LCD;
	pMsg->x-=2;
	pMsg->y-=18;
	if(pMsg->x<0||pMsg->x>=160||pMsg->y<0||pMsg->y>=160)pMsg->type=MSG_NULL;
}
/*======================================================================
---從全局消息隊(duì)列MsgQueue中讀一條消息----GetMsg---
======================================================================*/
void GetMsg(PDAMSG *msg)
{
	msg->type=MSG_NULL;
	while(MsgRead==MsgWrite)
	{
		#ifdef _PSDE_
		PSDE_CpuHalt();
		#else
		/*PDA使CPU halt的指令。*/
		#endif
	}
	*msg=MsgQueue[MsgRead];
	MsgRead=((++MsgRead)%MSG_QUEUE_SIZE);
}


#define LCD_WIDTH     160
#define LCD_HIGH      160
#define LCD_WIDTH_BYTE 80/* 80Bytes x 2Bits = 160Dots */

extern unsigned char DisBuffer[];
extern unsigned char *RomAddress;

/*======================================================================
---在LCD中以某一顏色顯示一點(diǎn)----DispDot---
======================================================================*/
void DispDot(short x,short y,unsigned char c)
{
	unsigned char *s;
	if(c>0x0f)return;
	s=&DisBuffer[y*LCD_WIDTH_BYTE+(x>>1)];
	*s=(x&1)?(*s&0xf0)|(c&0x0f):(*s&0x0f)|(c<<4);
}
void ReverseDot(short x,short y)
{
	unsigned char *s=&DisBuffer[y*LCD_WIDTH_BYTE+(x>>1)];
	*s=(x&1)?(*s&0xf0)|(~*s&0x0f):(*s&0x0f)|(~*s&0xf0);
}
/*======================================================================
---在LCD中以圖象數(shù)據(jù)s顯示一幅圖象----DispImage---
---畫點(diǎn)方式效率低下,建議用戶用邏輯和移位操作優(yōu)化數(shù)據(jù)拷貝---
======================================================================*/
void DispImage(short x,short y,short w,short h,unsigned char *s)
{
	short i,j;
	if(w&1)w++;
	for(j=y;j<h+y;j++)
	{
		for(i=x;i<x+w;i+=2)
		{
			DispDot(i,j,*s>>4);
			DispDot(i+1,j,*s&0x0f);
			s++;
		}
	}
}
void DispImageGray(short x,short y,short w,short h,unsigned char *s)
{
	short i,j,k,f;
	unsigned char c;
	if(w&1)w++;
	for(j=y,k=0;j<h+y;j++,k=!k)
	{
		for(i=x,f=k;i<x+w;i+=2,f=!f)
		{
			c=(*s>>4);
			DispDot(i,j,f?c:COLOR1+c);
			c=(*s&0x0f);
			DispDot(i+1,j,f?COLOR1+c:c);
			s++;
		}
	}
}
void DispBar(short x,short y,short w,short h,unsigned char c)
{
	short i,j;
	for(j=y;j<y+h;j++)for(i=x;i<x+w;i++)DispDot(i,j,c);
}
void DispReverse(short x,short y,short w,short h)
{
	short i,j;
	for(j=y;j<y+h;j++)for(i=x;i<x+w;i++)ReverseDot(i,j);
}
void DrawBar(PDARECT *rc,unsigned char c)
{
	DispBar(rc->left,rc->top,(short)(rc->right-rc->left+1),(short)(rc->bottom-rc->top+1),c);
}
void ReverseBar(PDARECT *rc)
{
	DispReverse(rc->left,rc->top,(short)(rc->right-rc->left+1),(short)(rc->bottom-rc->top+1));
}



void DrawLineX(short x,short y,short w,unsigned char c)
{
	short i;
	for(i=x;i<x+w;i++)DispDot(i,y,c);
}
void ReverseLineX(short x,short y,short w)
{
	short i;
	for(i=x;i<x+w;i++)ReverseDot(i,y);
}
void DrawDotLineX(short x,short y,short w,short dot,unsigned char c)
{
	short i,f;
	for(i=x,f=0;i<x+w;i++,f++)
	{
		if(f>=dot)f=-dot;
		if(f>=0)DispDot(i,y,c);
	}
}
void ReverseDotLineX(short x,short y,short w,short dot)
{
	short i,f;
	for(i=x,f=0;i<x+w;i++,f++)
	{
		if(f>=dot)f=-dot;
		if(f>=0)ReverseDot(i,y);
	}
}
void DrawLineY(short x,short y,short h,unsigned char c)
{
	short i;
	for(i=y;i<y+h;i++)DispDot(x,i,c);
}
void ReverseLineY(short x,short y,short h)
{
	short i;
	for(i=y;i<y+h;i++)ReverseDot(x,i);
}
void DrawDotLineY(short x,short y,short h,short dot,unsigned char c)
{
	short i,f;
	for(i=y,f=-dot;i<y+h;i++,f++)
	{
		if(f>=dot)f=-dot;
		if(f>=0)DispDot(x,i,c);
	}
}
void ReverseDotLineY(short x,short y,short h,short dot)
{
	short i,f;
	for(i=y,f=-dot;i<y+h;i++,f++)
	{
		if(f>=dot)f=-dot;
		if(f>=0)ReverseDot(x,i);
	}
}
void DrawRect(PDARECT *rc,unsigned char c)
{
	short w,h;
	w=rc->right-rc->left+1;
	h=rc->bottom-rc->top+1;
	DrawLineX(rc->left,rc->top,w,c);
	DrawLineY(rc->left,rc->top,h,c);
	DrawLineY(rc->right,rc->top,h,c);
	DrawLineX(rc->left,rc->bottom,w,c);
}
void ReverseRect(PDARECT *rc)
{
	short w,h;
	w=rc->right-rc->left+1;
	h=rc->bottom-rc->top-1;
	ReverseLineX(rc->left,rc->top,w);
	ReverseLineY(rc->left,(short)(rc->top+1),h);
	ReverseLineY(rc->right,(short)(rc->top+1),h);
	ReverseLineX(rc->left,rc->bottom,w);
}
void DrawDotRect(PDARECT *rc,short dot,unsigned char c)
{
	static short y,w,h;
	w=rc->right-rc->left+1;
	h=rc->bottom-rc->top-1;
	y=rc->top+1;
	DrawDotLineX(rc->left,rc->top,w,dot,c);
	DrawDotLineY(rc->left,y,h,dot,c);
	DrawDotLineY(rc->right,y,h,dot,c);
	DrawDotLineX(rc->left,rc->bottom,w,dot,c);
}
void ReverseDotRect(PDARECT *rc,short dot)
{
	short y,w,h;
	w=rc->right-rc->left+1;
	h=rc->bottom-rc->top-1;
	y=rc->top+1;
	ReverseDotLineX(rc->left,rc->top,w,dot);
	ReverseDotLineY(rc->left,y,h,dot);
	ReverseDotLineY(rc->right,y,h,dot);
	ReverseDotLineX(rc->left,rc->bottom,w,dot);
}
void DrawLine(short x1,short y1,short x2,short y2,unsigned char c)
{
	short m,n,dx,dy,x_inc,y_inc,i,error,offset;

	error=0;
	offset=y1*LCD_WIDTH+x1;
	dx=x2-x1;
	dy=y2-y1;

	if(dx>=0)x_inc=1;
	else
	{
		x_inc=-1;
		dx=-dx;
	}
	if(dy>=0)y_inc=LCD_WIDTH;
	else
	{
		y_inc=-LCD_WIDTH;
		dy=-dy;
	}
	m=(dx>>1);n=(dy>>1);
	if(dx>dy)
	{
		for(i=0;i<=dx;i++)
		{
			DispDot((short)(offset%LCD_WIDTH),(short)(offset/LCD_WIDTH),c);
			error+=dy;
			if(error>m)
			{
				error-=dx;
				offset+=y_inc;
			}
			offset+=x_inc;
		}
	}
	else
	{
		for(i=0;i<=dy;i++)
		{
			DispDot((short)(offset%LCD_WIDTH),(short)(offset/LCD_WIDTH),c);
			error+=dx;
			if(error>n)
			{
				error-=dy;
				offset+=x_inc;
			}
			offset+=y_inc;
		}
	}
}
void ReverseLine(short x1,short y1,short x2,short y2)
{
	short m,n,dx,dy,x_inc,y_inc,i,error,offset;

	error=0;
	offset=y1*LCD_WIDTH+x1;
	dx=x2-x1;
	dy=y2-y1;

	if(dx>=0)x_inc=1;
	else
	{
		x_inc=-1;
		dx=-dx;
	}
	if(dy>=0)y_inc=LCD_WIDTH;
	else
	{
		y_inc=-LCD_WIDTH;
		dy=-dy;
	}
	m=(dx>>1);n=(dy>>1);
	if(dx>dy)
	{
		for(i=0;i<=dx;i++)
		{
			ReverseDot((short)(offset%LCD_WIDTH),(short)(offset/LCD_WIDTH));
			error+=dy;
			if(error>m)
			{
				error-=dx;
				offset+=y_inc;
			}
			offset+=x_inc;
		}
	}
	else
	{
		for(i=0;i<=dy;i++)
		{
			ReverseDot((short)(offset%LCD_WIDTH),(short)(offset/LCD_WIDTH));
			error+=dx;
			if(error>n)
			{
				error-=dy;
				offset+=x_inc;
			}
			offset+=y_inc;
		}
	}
}
short CheckPointInRect(short x,short y,PDARECT *pRc)
{
	if(x>=pRc->left&&x<=pRc->right&&y>=pRc->top&&y<=pRc->bottom)return 1;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久免费丝袜 | 日韩视频一区二区三区| 欧美伊人久久久久久午夜久久久久| 99re在线精品| 337p亚洲精品色噜噜| 日韩欧美综合一区| 久久久精品国产免费观看同学| 欧美激情一二三区| 一区二区三区91| 韩日欧美一区二区三区| 成人高清视频在线| 在线不卡免费av| 国产精品三级视频| 亚洲国产精品久久久男人的天堂| 日韩电影免费在线看| 高清视频一区二区| 欧美久久高跟鞋激| 一级日本不卡的影视| 国产一区视频在线看| 欧美人伦禁忌dvd放荡欲情| 久久综合国产精品| 日韩精品一二三| 91国模大尺度私拍在线视频| 国产精品久久夜| 国产精品亚洲一区二区三区妖精| 欧美日韩一二三| 午夜a成v人精品| 欧美午夜电影网| 亚洲精品中文字幕乱码三区| 国产成人自拍高清视频在线免费播放| 777a∨成人精品桃花网| 亚洲一区二区三区在线播放| 成人国产亚洲欧美成人综合网| 国产精品女主播在线观看| 国产精品1024| 国产精品女上位| 99在线精品观看| 亚洲精品视频在线| 欧美性生活一区| 久久国产精品色| 国产精品人成在线观看免费| 成人av集中营| 亚洲香蕉伊在人在线观| 7777精品伊人久久久大香线蕉超级流畅| 天堂av在线一区| 精品久久人人做人人爱| 成人小视频免费观看| 亚洲少妇30p| 欧美精品粉嫩高潮一区二区| 偷拍亚洲欧洲综合| 久久久久国产成人精品亚洲午夜| 成人性色生活片| 日韩精品电影在线观看| 国产午夜亚洲精品午夜鲁丝片| av电影天堂一区二区在线观看| 午夜精品一区在线观看| 国产午夜精品一区二区三区视频| 色综合天天综合在线视频| 喷白浆一区二区| 亚洲一区二区视频在线| 日本一区二区三区久久久久久久久不 | 丝袜亚洲精品中文字幕一区| 2024国产精品| 精品国产乱码久久久久久老虎| gogogo免费视频观看亚洲一| 精品影视av免费| 免费成人性网站| 日本成人在线看| 亚洲成人av电影| 亚洲乱码国产乱码精品精98午夜| 欧美精品一区视频| 欧美日韩国产乱码电影| 色婷婷精品久久二区二区蜜臀av | 精品乱人伦小说| 欧美精品自拍偷拍| 欧美精品粉嫩高潮一区二区| 色欧美片视频在线观看在线视频| 国产91精品在线观看| 成人黄色软件下载| 99精品视频一区二区三区| 欧美三级电影在线看| 欧美日韩你懂得| 日韩欧美在线影院| 久久夜色精品国产噜噜av| 久久视频一区二区| 国产精品福利一区| 亚洲精品五月天| 日日摸夜夜添夜夜添精品视频 | gogogo免费视频观看亚洲一| 91蝌蚪国产九色| 欧美一区二区人人喊爽| 久久精品一区二区三区不卡| 国产亲近乱来精品视频| 亚洲欧美另类久久久精品| 亚洲二区视频在线| 国产福利91精品一区| 色哦色哦哦色天天综合| 精品国产污污免费网站入口| 亚洲国产成人自拍| 日韩激情在线观看| 成人高清免费观看| 欧美一区二区高清| 亚洲黄色在线视频| 国产一区二区0| 色婷婷久久99综合精品jk白丝 | 日韩在线播放一区二区| 成人免费不卡视频| 欧美日韩国产中文| 亚洲欧美日韩一区| 懂色一区二区三区免费观看| 制服丝袜中文字幕一区| 一区二区三区视频在线观看| 成人激情小说网站| 欧美国产一区二区在线观看| 青青草原综合久久大伊人精品优势| 成人夜色视频网站在线观看| 欧美日韩免费高清一区色橹橹| 中文在线一区二区| www.亚洲免费av| 欧美一区三区四区| 三级精品在线观看| 欧美肥妇bbw| 日韩精品1区2区3区| 337p亚洲精品色噜噜噜| 久久精品国产亚洲一区二区三区| 欧美久久久久免费| 精品一区二区三区在线播放视频| 欧美一区二区在线免费播放| 免费观看在线综合| 精品久久久久久久久久久久久久久| 青青草视频一区| 久久综合色鬼综合色| 成人精品小蝌蚪| 亚洲免费在线看| 欧美一区二区三区免费大片 | 欧美mv日韩mv国产| 国产精品一色哟哟哟| 亚洲精品视频在线观看网站| 欧美色爱综合网| 激情图区综合网| 亚洲欧美日韩电影| 日韩一区二区在线看| 成人免费观看av| 视频一区中文字幕国产| 国产日韩影视精品| 欧美日韩一区在线观看| 国产精品亚洲第一| 免费在线视频一区| 一区二区三区四区亚洲| 精品久久久久久亚洲综合网| 成人av网站免费观看| 精品一二三四在线| 亚洲国产日韩a在线播放| 亚洲精品一线二线三线| 欧美亚洲一区二区在线观看| 国产永久精品大片wwwapp | 欧洲视频一区二区| 国产福利精品导航| 久久精品国产亚洲高清剧情介绍| 亚洲私人影院在线观看| 精品盗摄一区二区三区| 在线综合+亚洲+欧美中文字幕| youjizz久久| 国产91精品精华液一区二区三区| 香蕉成人伊视频在线观看| 亚洲精品日韩综合观看成人91| 久久久久88色偷偷免费| 欧美刺激午夜性久久久久久久| 精品视频在线看| 在线观看亚洲一区| 欧美亚洲动漫精品| 日本精品视频一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 91麻豆swag| 欧美电影免费观看高清完整版在线观看| 亚洲精品国产高清久久伦理二区| 久久久国产精品麻豆| 亚洲第一狼人社区| 成人免费观看视频| 日韩欧美中文一区二区| 中文字幕制服丝袜成人av| 亚洲欧美日韩中文播放| 免播放器亚洲一区| 色爱区综合激月婷婷| 欧美mv和日韩mv国产网站| 国产精品情趣视频| 另类的小说在线视频另类成人小视频在线| 国内欧美视频一区二区 | 美女诱惑一区二区| 成人app软件下载大全免费| 欧美日韩成人激情| 亚洲蜜桃精久久久久久久| 国产精品一线二线三线| 日韩免费电影一区| 亚洲成人免费电影| 在线视频综合导航| 亚洲日穴在线视频| gogogo免费视频观看亚洲一| 精品国产123| 久久99国产精品成人|