EasyX指导手册(10)

2019-08-17 13:14

E6

E7

E8

E9

00E61CE8

ax 00E70D79

an 00E81D74

xax

SDPSanSPxPDxSSPxDSDSPDSa

00E95CE6

naxxn EA

00EA02E9 EB

00EB0849 EC

00EC02E8 ED

00ED0848 EE

00EE0086 EF

00EF0A08 F0

00F00021 F1

00F10885 F2

00F20B05 F3

00F3022A F4

00F40B0A F5

00F50225 F6

00F60265 F7

00F708C5

DPSao DPSxno SDPao SDPxno DSo SDPnoo P PDSono PDSnao PSno PSDnao PDno PDSxo PDSano

SRCPAINT PATCOPY

F8

F9

FA

FB

FC

FD

FE

FF

00F802E5 00F90845 00FA0089 00FB0A09 00FC008A 00FD0A0A 00FE02A9 00FF0062

PDSao PDSxno DPo DPSnoo PSo PSDnoo DPSoo 1

PATPAINT

WHITENESS

2.6鼠标相关函数

鼠标消息缓冲区可以缓冲63个未处理的鼠标消息。每一次GetMouseMsg将从鼠标消息缓冲区取出一个最早发生的消息。当鼠标消息缓冲区满了以后,不再接收任何鼠标消息。2.6.1相关函数和数据如下:

函数或数据 FlushMouseMsgBuffer

GetMouseMsg MouseHit MOUSEMSG

描述

清空鼠标消息缓冲区。

获取一个鼠标消息。如果当前鼠标消息队列中没有,就一直等待。

检测当前是否有鼠标消息。 保存鼠标消息的结构体。

2.6.2FlushMouseMsgBuffer 这个函数用于清空鼠标消息缓冲区。 voidFlushMouseMsgBuffer(); 2.6.3GetMouseMsg

这个函数用于获取一个鼠标消息。如果当前鼠标消息队列中没有,就一直等待。 MOUSEMSGGetMouseMsg(); 返回值:

返回保存有鼠标消息的结构体。 示例:

请参见示例程序中的“鼠标操作范例”。

2.6.4MouseHit

这个函数用于检测当前是否有鼠标消息。 boolMouseHit(); 参数: 返回值:

如果存在鼠标消息,返回true;否则返回false。 2.6.5MOUSEMSG

这个结构体用于保存鼠标消息,定义如下: structMOUSEMSG {

UINTuMsg;//当前鼠标消息 boolmkCtrl;//Ctrl键是否按下 boolmkShift;//Shift键是否按下 boolmkLButton;//鼠标左键是否按下 boolmkMButton;//鼠标中键是否按下 boolmkRButton;//鼠标右键是否按下 intx;//当前鼠标x坐标(物理坐标) inty;//当前鼠标y坐标(物理坐标) intwheel;//鼠标滚轮滚动值 }; 成员: uMsg:

指定鼠标消息类型,可为以下值: 值

WM_MOUSEMOVE WM_MOUSEWHEEL

WM_LBUTTONDOWN

WM_LBUTTONUP WM_LBUTTONDBLCLK

WM_MBUTTONDOWN

WM_MBUTTONUP WM_MBUTTONDBLCLK

含义

鼠标移动消息。 鼠标滚轮拨动消息。

左键按下消息。 左键弹起消息。 左键双击消息。 中键按下消息。 中键弹起消息。 中键双击消息。

WM_RBUTTONDOWN

WM_RBUTTONUP WM_RBUTTONDBLCLK

右键按下消息。 右键弹起消息。 右键双击消息。

mkCtrlCtrl键是否按下 mkShiftShift键是否按下 mkLButton鼠标左键是否按下 mkMButton鼠标中键是否按下 mkRButton鼠标右键是否按下 X当前鼠标x坐标(物理坐标) y当前鼠标y坐标(物理坐标)

wheel鼠标滚轮滚动值,为120的倍数。 2.7其它函数

2.7.1相关函数和数据如下: 函数或数据 BeginBatchDraw

EndBatchDraw

FlushBatchDraw

GetEasyXVer

InputBox

描述

开始批量绘图。

结束批量绘制,并执行未完成的绘制任务。

执行未完成的绘制任务。 获取当前EasyX库的版本信息。 以对话框形式获取用户输入。

2.7.2BeginBatchDraw

这个函数用于开始批量绘图。执行后,任何绘图操作都将暂时不输出到屏幕上,直到执行FlushBatchDraw或EndBatchDraw才将之前的绘图输出。

voidBeginBatchDraw(); 示例:

以下代码实现一个圆从左向右移动,会有比较明显的闪烁。 请取消main函数中的三个注释,以实现批绘图功能,可以消除闪烁。

#include voidmain() {

initgraph(640,480); setcolor(WHITE);

setfillstyle(RED); //BeginBatchDraw(); for(inti=50;i<600;i++) {

circle(i,100,40); floodfill(i,100,WHITE); //FlushBatchDraw(); Sleep(10); cleardevice(); }

//EndBatchDraw(); closegraph(); }

2.7.3EndBatchDraw

这个函数用于结束批量绘制,并执行未完成的绘制任务。 //结束批量绘制,并执行未完成的绘制任务 voidEndBatchDraw();

//结束批量绘制,并执行指定区域内未完成的绘制任务 voidEndBatchDraw(intleft,inttop,intright,intbottom); 参数:

left指定区域的左部x坐标。 top指定区域的上部y坐标。 right指定区域的右部x坐标。 bottom指定区域的下部y坐标。 请参见BeginBatchDraw的示例。 2.7.4FlushBatchDraw

这个函数用于执行未完成的绘制任务。 //执行未完成的绘制任务 voidFlushBatchDraw();

//执行指定区域内未完成的绘制任务

voidFlushBatchDraw(intleft,inttop,intright,intbottom); 参数:

left指定区域的左部x坐标。 top指定区域的上部y坐标。 right指定区域的右部x坐标。 bottom指定区域的下部y坐标。 示例:

请参见BeginBatchDraw的示例。


EasyX指导手册(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:六(上)《比的认识》集体评课

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: