EGL--用户手册

类别:编程语言 点击:0 评论:0 推荐:

GEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEG
G                                                                                                                                                                             G
G   EASY GRAPHICS 库函数用户手册                                                                                                               G
G                                                                                                                                                                             G
GEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEG

基础函数

///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////KEY.INC
int GetKey()
 接受键盘的输入
 返回值: 如果为普通ASCII码,直接返回;
 如果为扩展的ASCII码,返回扩展码*100+基本码。
int GetStatusKey(int cmd)
 判断CTRL,ALT,SHIFT键的触发状态
 如果指定的键按下,返回真
 指定的键cmd包括:R_SHIFT  L_SHIFT  CTRL  ALT
int Kbhit()
 判断是否键盘中有键已经被按下
 有键盘缓冲区中有数据,则返回真
 直接读取键盘缓冲区,用以取代TC提供的采用BIOS方式缓慢的按键判断kbhit()
void ClearKeyBuffer()
 清空键盘缓冲区
 采用直接访问键盘缓冲区方式

////////////////////////////////////////////////////////////////////////////////
////////////////////////MOUSE.INC
void pascal set_event_handler(int call_mask,void far( *location)())
 设置鼠标器驱动程序的响应函数
 call_mask:鼠标器事件请求的掩码,location 响应函数的地址
 location用汇编写成,已编译成目标代码
void near event_processor(int event_status,int button_status,int x,int y)
 鼠标器事件处理函数
 由鼠标器事件响应函数调用,将传递的事件掩码解释为变量形式
int reset_mouse(void)
 复位鼠标器驱动程序或检测鼠标器存在否
 如鼠标器不存在,返回假
 置光标计数器为-1
 位置为屏幕中央
 鼠标器事件响应函数为空
 光标形状为默认形状光标
void mouse_off(void)
 关闭光标的显示
void mouse_on(void)
 打开光标的显示
void mouse_shape(int shape[32],int hotx,int hoty)
 改变光标的形状
 光标是一个16*16点阵位图,前16元素为形状码,后16元素为掩码
 改变之前必须关闭光标的显示,否则在图形下会破坏背景
 shape形状掩码,hotx,hoty光标热点
void set_mouse_position(int x,int y)
 移动光标到新位置
int get_double_press(void)
 判断鼠标器双击
 如果产生双击事件,返回真
 注意:
 调用***双击的条件***为为左键下,只有已击键了才检查双击
 当鼠标左键非双击,则此次是一次单击事件
 即:每次调用双击后,必须再调用一次单击,否则有可能丢失键击状态
 if( LBUTTON_DOWN ){
    if( get_double_press() ) ... 双击如何
    else ...单击如何
  LBUTTON_DOWN=0
   }
void InstallEvent(void)
 安装鼠标器事件响应函数
 采用消息通知的手段,提供一个非查询访问鼠标器状态的有效方法
void reset_event_status(void)
 清空鼠标器状态变量
 其中:
 MOUSE_MOVED=0; LBUTTON_DOWN=0;
 RBUTTON_DOWN=0; LBUTTON_UP=0;
 RBUTTON_UP=0; BSTATE=0;
void set_mousex(int minx,int maxx)
 设置光标位置X方向的极值
void set_mousey(int miny,int maxy)
 设置光标位置Y方向的极值

///////////////////////////////////////////////////////////////////////////////
///////////////XMS.INC
char *xms_2_basemem_buffer
 扩充内存与基本内存之间缓冲区的指针
int xms_init()
 扩充内存服务程序初始化
 检测HIMEM.SYS存在否,并为扩充内存与基本内存缓冲区分配内存
 如HIMEM.SYS未加载,或无法分配缓冲区,返回假
int end_xms()
 结束扩充内存服务
 如程序中采用了扩充内存服务,在程序退出前要结束扩充内存服务程序
int xms_free(int xms_handle)
 释放由句柄占用的扩充内存
 xms_handle: 扩充内存块句柄
 如未成功释放掉扩充内存块,返回假
int xms_movedata( struct xms_move *m )
 将数据在扩充内存与基本内存之间传送
 失败返回假
 xms_move结构体定义如下:
struct xms_move{
      long byte_count;    /* 每次传送多少个字节 */
      unsigned source_handle;  /* 源区句柄 */
      long source_offset;   /* 源区偏移量 */
      unsigned destination_handle; /* 目的区句柄 */
      long destination_offset;  /* 目的区偏移量 */
      };
int xms_malloc( unsigned memKB )
 分配扩充内存
 分配成功返回句柄,分配失败返回假
 memKB要求的扩充内存容量,以KB为单位
void xms_interface(union REGS *inregs,union REGS *outregs)
 提供扩充内存服务的接口函数

///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////DELAY.INC
void InitTimer()
 初始化整个延时系统
 函数修改了时钟中断0x08,因此这个函数只可被调用一次
 在程序中尽量不要再修改时钟中断
 在程序结束前必须要调用EndTimer,以恢复0x08中断
int CreateTimer(int dida,unsigned int id)
 创建一个要求延时请求的例子
 如未申请成功,返回假;原因为例子数组已满
 dida:滴达数
 id:这个例子的ID,ID 为一个正整数,用来识别不同的例子
int CheckTimeOut(unsigned int id)
 判断指定id的例子延时到来否
 延时到来,返回真
 如返回假,说明延时未到,或指定的ID错误
void Delay(int dida)
 用来代替delay函数的代码,使不同机型可产生相等时间的延时
 dida:指定的延时单位,以滴达为单位
 注意:当要求的滴达较小时,可能会产生延时小于要求的情况
 这是采用时钟中断延时固有的缺陷,当要求滴达较大时,
 这种情况可能忽略
void ReleaseTimer(int id)
 释放指定ID的例子
 当要求的例子不用时,应释放,以节省资源
void EndTimer()
 结束延时服务,恢复系统状态
 当完成延时后应调用,否则在程序退出后,系统可能死机

本文地址:http://com.8s8s.com/it/it25075.htm