用easyx编程大神出错,求大神帮助!

一个暂停游戏的子函数,求大神指出错误_easyx吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:6,418贴子:
一个暂停游戏的子函数,求大神指出错误收藏
void pause(int &i)//鼠标识别暂停游戏{MOUSEMSGif(MouseHit()) {m =GetMouseMsg() ;switch(m.uMsg)
{case WM_LBUTTONDOWN:
if(m.x&670&&m.x&750&&m.y&120 &&m.y&180)
{setfillstyle(BLACK);
setcolor(WHITE);fillrectangle(670,
120, 830, 180);char zan[]="继续游戏";outtextxy(710,140,zan);i=1;}}}while(i){m =GetMouseMsg() ;switch(m.uMsg){case WM_LBUTTONDOWN:
if(m.x&750&&m.x&830&&m.y&120 &&m.y&180)
{setfillstyle(BLACK);
setcolor(WHITE); fillrectangle(670,
120, 830, 180);char zan[]="继续游戏";outtextxy(710,140,zan);i=0;}}}}
上海张学友、王菲演唱会一站式购票!票品安全且真票!立即订购!
该函数写在主循环中。。但是怎么点都没反应。。
怎么没人啊。。。。。这个问题真解决不了。。。。。。。是这个子函数有问题还是整个主循环的问题啊
给出完整代码吧,这样没法调试的。
#include "stdafx.h"#include"graphics.h"#include"conio.h"#include"math.h"#include"stdio.h"#include"stdlib.h"#include "time.h"#include &process.h&void createmap()//绘制基本界面{for(i=0;i&610;i=i+30){line(0,i,600,i);line(i,0,i,600);}
line(31,0,31,600);line(29,0,29,600);char kai[]="开始游戏";outtextxy(710,60,kai);rectangle(
40, 830, 100);char guan[]="退出游戏";outtextxy(710,140,guan);rectangle(
120, 830, 180);char bang1[]="wsad控制白色的羊,躲避";char bang2[]="红色的狼,吃完绿草";char bang3[]="羊入羊圈(粗实线左),狼不可追入视为暂停。";char bang4[]="也可用空格键控制暂停,继续";outtextxy(605,500,bang1);outtextxy(605,520,bang2);outtextxy(605,540,bang3);outtextxy(605,560,bang4);}void createsheep(int &x,int &y)// 画羊{setfillstyle(WHITE);fillcircle(15*x, 15*y, 13);}void createwolve(int&a,int&b)//画狼{setfillstyle(RED);fillcircle(15*a, 15*b, 10);}void startexit(int&a0,int&b0,int&x0,int&y0,int&a,int&b,int&x,int&y,int&g0,int&g1,int&g2,int g3[60],int g4[60],int&g5,int&k,int&a3,int&b3,int&a2,int&b2)//鼠标识别开始结束继续游戏{MOUSEMSGm =GetMouseMsg() ;switch(m.uMsg){case WM_LBUTTONDOWN:
if(m.x&670&&m.x&830&&m.y&40 &&m.y&100){closegraph();initgraph();
createmap();k=0;
for(g5=0; g5&60; g5++)//画草{ g1=2*(rand()%19+2)-1; g2=2*(rand()%20+1)-1;
setfillstyle(GREEN);
fillcircle(15*g1, 15*g2,13);
setfillstyle(BLACK);
fillcircle(15*g1, 15*g2, 10);g3[g5]=g1;g4[g5]=g2;} g5=0; createwolve(a0,b0);
createsheep(x0,y0);
createwolve(a3,b3);a=a0;b=b0;x=x0;y=y0;a2=a3;b2=b3;}else if(m.x&670&&m.x&830&&m.y&120 &&m.y&180)
closegraph();
}} void pause(int &i)//鼠标识别暂停游戏{MOUSEMSGif(MouseHit()){m =GetMouseMsg() ;switch(m.uMsg){case WM_LBUTTONDOWN:
if(m.x&670&&m.x&750&&m.y&120 &&m.y&180){setfillstyle(BLACK);
setcolor(WHITE);fillrectangle(670,
120, 830, 180);char zan[]="继续游戏";outtextxy(710,140,zan);i=1;}}}while(i){m =GetMouseMsg() ;switch(m.uMsg){case WM_LBUTTONDOWN:
if(m.x&750&&m.x&830&&m.y&120 &&m.y&180){setfillstyle(BLACK);
setcolor(WHITE);fillrectangle(670,
120, 830, 180);char zan[]="暂停游戏";outtextxy(710,140,zan);i=0;}}}}
void wolveAmove(int&a,int&b,int&x,int&y)//狼A移动AI{if(abs(a-x)&abs(b-y)){
if((b-y)&0)
setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b, 10);
setfillstyle(RED);b+=2;
fillcircle(15*a, 15*b, 10);
{ setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b, 10);
setfillstyle(RED);
fillcircle(15*a, 15*b, 10);
}}if(abs(a-x)&=abs(b-y)){
if((a-x)&0)
setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b, 10);
setfillstyle(RED);
fillcircle(15*a, 15*b, 10);
setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b, 10);setfillstyle(RED);
fillcircle(15*a, 15*b, 10);
}}if(a&3){setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b, 10);setfillstyle(RED);
fillcircle(15*a, 15*b, 10);}}void wolveBmove(int&a,int&b,int&x,int&y)//狼B移动AI{if(abs(a-x)&abs(b-y)){
if((b-y)&0)
setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b, 10);
setfillstyle(RED);b+=2;
fillcircle(15*a, 15*b, 10);
setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b, 10);
setfillstyle(RED);
fillcircle(15*a, 15*b, 10);
}}if(abs(a-x)&=abs(b-y)){
if((a-x)&0) {
setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b, 10);setfillstyle(RED);
fillcircle(15*a, 15*b, 10);
setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b, 10);
setfillstyle(RED);
fillcircle(15*a, 15*b, 10);
}}if(a&3){setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b, 10);setfillstyle(RED);
fillcircle(15*a, 15*b, 10);}}
int main(int argc, char* argv[])//主函数{initgraph();IMAGEgetimage(&black,0,0,120,30);createmap();int i=0;int x=1,y=1, a=37,b=39,a2=39,b2=37,k=1;//狼羊运动量int g0=60,g1 , g2,g3[60],g4[60],g5=0;//草int x0=1,y0=1, a0=37,b0=39,a3=39,b3=37;//狼羊初始量char c=1;char bang[]="按空格键继续";char sjie[]="游戏胜利";char bjie[]="游戏失败";k=4;startexit(a0,b0,x0,y0,a,b,x,y,g0,g1,g2,g3,g4,g5,k,a3,b3,a2,b2);while(true)//主循环{putimage(700,300,&black);if(MouseHit())startexit(a0,b0,x0,y0,a,b,x,y,g0,g1,g2,g3,g4,g5,k,a3,b3,a2,b2);if(a==x&&b==y)//失败判定{k=1;setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a, 15*b , 15);setcolor(RED);
setfillstyle(RED);
fillcircle(15*a, 15*b, 15);}if(a2==x&&b2==y){k=1;setcolor(BLACK);
setfillstyle(BLACK);
fillcircle(15*a2, 15*b2, 15);
setcolor(RED);
setfillstyle(RED);
fillcircle(15*a2, 15*b2, 15);} for(g0=0;g0&60;g0++)//胜利判别{if(x==g3[g0]&&y==g4[g0]){g5++;g3[g0]=0;g4[g0]=0;}}if(g5==60) { outtextxy(710,300,sjie);k=2;}if(kbhit())c = getch();setcolor(BLACK);setfillstyle(BLACK);fillcircle(15*x, 15*y, 13);setcolor(BLACK);setfillstyle(WHITE);switch(c)//控制羊移动函数{ case ' ':k=3;
case 'a': x-=2; case 'A': x-=2;case 'd': x+=2; case 'S': y+=2;case 'w': y-=2; case 'W': y-=2;case 's': y+=2; case 'D': x+=2; case 1:}c=1;if(x&1)x+=2;if(y&1)y+=2;if(x&40)x-=2;if(y&40)y-=2;fillcircle(15*x, 15*y, 13);if(MouseHit())startexit(a0,b0,x0,y0,a,b,x,y,g0,g1,g2,g3,g4,g5,k,a3,b3,a2,b2);int i1;i1++;if(i1&=1001)i1=0;if(i1%550==0){wolveAmove(a,b,x,y);wolveBmove(a2,b2,x,y);}setcolor(RED);while(k!=0 ){setcolor(WHITE); if(k==1)outtextxy(700,300,"游戏失败"); if(k==2)outtextxy(700,300,"游戏胜利");if(k==3)outtextxy(700,300,"按空格键继续");if(MouseHit())startexit(a0,b0,x0,y0,a,b,x,y,g0,g1,g2,g3,g4,g5,k,a3,b3,a2,b2);if(kbhit()){char v=getch();switch(v){ case ' ':k=0;}}}} return 0;}
我简单弄了下,我觉得这个函数永远进不去(一开始没加while(1)),因为判断只是一瞬间,所以if(mousehit)没用,那自然下面这个while(i)就进不去了,所以我觉得这个函数没用到。在上面加个while(1)应该就好了。我改成这样是为了调试用的。。。。。。但愿正确理解了你的意思。。。。。。
pause 函数从来没有被调用过啊
int main(int argc, char* argv[])//主函数{initgraph();IMAGEgetimage(&black,0,0,120,30);createmap();int i=0;int x=1,y=1, a=37,b=39,a2=39,b2=37,k=1;//狼羊运动量int g0=60,g1 , g2,g3[60],g4[60],g5=0;//草int x0=1,y0=1, a0=37,b0=39,a3=39,b3=37;//狼羊初始量char c=1;char bang[]="按空格键继续";char sjie[]="游戏胜利";char bjie[]="游戏失败";k=4;startexit(a0,b0,x0,y0,a,b,x,y,g0,g1,g2,g3,g4,g5,k,a3,b3,a2,b2);while(true)//主循环{putimage(700,300,&black);if(MouseHit())startexit(a0,b0,x0,y0,a,b,x,y,g0,g1,g2,g3,g4,g5,k,a3,b3,a2,b2);pause(i);if(a==x&&b==y)//失败判定{k=1;setcolor(BLACK); setfillstyle(BLACK); fillcircle(15*a, 15*b , 15);setcolor(RED); setfillstyle(RED); fillcircle(15*a, 15*b, 15);}
CGWANG原画培训 「零基础全额退费保障」,原画名企委托培训,高薪工作不是梦
我觉得应设一个变量,并加上时间控制,测试代码如下:#include &graphics.h& void main(){ bool p= DWORD sT MOUSEMSG initgraph(640, 480); cleardevice(); sTime = GetTickCount(); srand(sTime); while(true){
if(MouseHit())
msg = GetMouseMsg();
switch(msg.uMsg)
case WM_LBUTTONDOWN:
if(GetTickCount()-sTime&500)
sTime = GetTickCount();
case WM_RBUTTONDOWN:
cleardevice();
closegraph();
FlushMouseMsgBuffer();
outtextxy(270,230,"Game Paused!!");
setcolor(GREEN);
circle(rand()%600+20,rand()%440+20,20);
Sleep(50);
cleardevice();
感谢各位大神的提携,我还是用我的键盘识别吧。。。。主要是作业已经上交了。。。。各位的意见我看了,确实受益匪浅。再次感谢。
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或求大神,求帮助,关于调剂_考研吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:2,039,308贴子:
求大神,求帮助,关于调剂收藏
本人今年估分数学145左右,英语选择题47,政治选择题31左右,专业课水,130往上。这样估分400左右。报的南京某一本,材料学。有没有机会调剂到一个211学校呢?
好的话剧,坚决不能错过,价格也很重要!
当时没敢报南京理工大学和东南大学,怕考不上,现在想想当时应该充一把
我本科只是普通的一个二本工业大学,有没有人支个招感激不尽
这个估分成绩没有吹牛,吹牛去吃屎。希望吧里大神指点一二
难道大神早上都睡了嘛
然而我不知道
别想太多。。。专业课差别太大。你考东南的专业课可能及格都难。
别着急,出成绩了你就不会这么想了
自己动动那准研究生的脑子想想,可能吗
上海地区在职研究生招生信息网,提供在职研究生考试报名条件,报名时间等相关咨询.涵盖金融,经济,管理,教育,法学等专业方向
调剂只会往下调,别想了大兄弟
有机会,可以试试
不要求本科学历为211以上的211是很为机会的
东南肯定没戏,其他不敢说
不可能的……打500都不会要的…
调剂只会调到更差的学校……
分数一出来就挨个联系吧
一般985调剂要求你本科是985,好点的211也会要求本科是211以上的,一般的211调剂首先要本科是985的,就算考400分,人家也会要985考350调剂的,还是那句话,高考决定你以后的走向
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或1329人阅读
随想录(100)
【 声明:版权所有,欢迎转载,请勿用于商业用途。& 联系信箱:feixiaoxing @】 &&& 对于很多使用过Turbo C的同学来说,以前使用编译器进行图形编程是一件非常容易的事情。但是在win32之后,使用windows提供的SDK进行图像方面的编程就显得很麻烦,于是就有人想,是不是可以用win32 SDK仿照过去的graphics API的方法,让过去编程的方法也可以继续发挥作用。Easyx就是做了这么一件事情。&&& Easyx的官方网站在。其实它的原理也不复杂,如果你调试的时候,打开threads option就会发现,其实easyx就是利用win32 SDK封装一层graphics的API,整个应用其实是双线程的。当然,它的安装也非常简单,是我比较喜欢的那种。基本上你下载了压缩包解压之后,将头文件或者lib文件拷贝到对应的位置就可以了。&&& 为了说明怎么使用,我这边就写了几个最简单的demo,方便大家快速入门。&&& 1)demo程序#include &graphics.h&
#include &conio.h&
main(int argc, char* argv[]){
initgraph(600, 800);
closegraph();
}&&& 2)画直线#include &graphics.h&
#include &conio.h&
main(int argc, char* argv[]){
initgraph(600, 800);
line(100,100, 300, 300);
closegraph();
}&&& 3)画圆#include &graphics.h&
#include &conio.h&
main(int argc, char* argv[]){
initgraph(600, 800);
circle(100, 100, 50);
closegraph();
}&&& 4)画矩形#include &graphics.h&
#include &conio.h&
main(int argc, char* argv[]){
initgraph(600, 800);
rectangle(10, 10, 200,200);
closegraph();
}&&& 5)画椭圆#include &graphics.h&
#include &conio.h&
main(int argc, char* argv[]){
initgraph(600, 800);
ellipse(100, 100, 300,200);
closegraph();
}&&& 6) 更详细的api,直接查看easyx.h/******************************************************
* EasyX Library for C++ (Ver:(beta))
* 在 VC 下实现简单的绘图
******************************************************/
#pragma once
#ifndef WINVER
#define WINVER 0x0400
// Specifies that the minimum required platform is Windows 95 and Windows NT 4.0.
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0500
// Specifies that the minimum required platform is Windows 2000.
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0x0410 // Specifies that the minimum required platform is Windows 98.
#if defined(UNICODE) && (_MSC_VER & 1200)
#pragma comment(lib,&easyxw.lib&)
#elif !defined(UNICODE) && (_MSC_VER & 1200)
#pragma comment(lib,&easyx.lib&)
#elif defined(UNICODE)
#pragma comment(lib,&easyxw6.lib&)
#elif !defined(UNICODE)
#pragma comment(lib,&easyx6.lib&)
#ifndef __cplusplus
#error EasyX is only for C++
#include &windows.h&
#include &tchar.h&
// 绘图窗口初始化参数
#define SHOWCONSOLE
// 创建图形窗口时,保留控制台的显示
#define NOCLOSE
// 没有关闭功能
#define NOMINIMIZE
// 没有最小化功能
#define BLACK
#define BLUE
#define GREEN
#define CYAN
#define RED
#define MAGENTA
#define BROWN
#define LIGHTGRAY
#define DARKGRAY
#define LIGHTBLUE
#define LIGHTGREEN
#define LIGHTCYAN
#define LIGHTRED
#define LIGHTMAGENTA 0xFF55FF
#define YELLOW
#define WHITE
// 定义颜色转换宏
#define BGR(color) ( (((color) & 0xFF) && 16) | ((color) & 0xFF00FF00) | (((color) & 0xFF0000) && 16) )
class IMAGE;
// 定义线的样式
class LINESTYLE
LINESTYLE();
LINESTYLE(const LINESTYLE &style);
LINESTYLE& operator = (const LINESTYLE &style);
// 赋值运算符重载函数
virtual ~LINESTYLE();
class FILLSTYLE
FILLSTYLE();
FILLSTYLE(const FILLSTYLE &style);
FILLSTYLE& operator = (const FILLSTYLE &style);
// 赋值运算符重载函数
virtual ~FILLSTYLE();
// 填充形式
// 填充图案样式
// 填充图像
// 定义图像对象
class IMAGE
int getwidth() // 获取对象的宽度
int getheight() // 获取对象的高度
int width,
// 对象的宽高
HBITMAP m_hB
HDC m_hMemDC;
int m_MemCurX;
// 当前点X坐标
int m_MemCurY;
// 当前点Y坐标
float m_data[6];
COLORREF m_LineC
// 当前线条颜色
COLORREF m_FillC
// 当前填充颜色
COLORREF m_TextC
// 当前文字颜色
COLORREF m_BkC
// 当前背景颜色
// 绘图区的内存
LINESTYLE m_LineS
// 画线样式
FILLSTYLE m_FillS
// 填充样式
virtual void SetDefault();
// 设置为默认状态
IMAGE(int _width = 0, int _height = 0);
// 创建图像
IMAGE(const IMAGE &img);
// 拷贝构造函数
IMAGE& operator = (const IMAGE &img);
// 赋值运算符重载函数
virtual ~IMAGE();
virtual void Resize(int _width, int _height); // 调整尺寸
// 绘图模式相关函数
HWND initgraph(int width, int height, int flag = NULL); // 初始化图形环境
void closegraph();
// 关闭图形环境
// 绘图环境设置
void cleardevice();
void setcliprgn(HRGN hrgn);
// 设置当前绘图设备的裁剪区
void clearcliprgn();
// 清除裁剪区的屏幕内容
void getlinestyle(LINESTYLE* pstyle);
// 获取当前画线样式
void setlinestyle(const LINESTYLE* pstyle);
// 设置当前画线样式
void setlinestyle(int style, int thickness = 1, const DWORD *puserstyle = NULL, DWORD userstylecount = 0); // 设置当前画线样式
void getfillstyle(FILLSTYLE* pstyle);
// 获取当前填充样式
void setfillstyle(const FILLSTYLE* pstyle);
// 设置当前填充样式
void setfillstyle(int style, long hatch = NULL, IMAGE* ppattern = NULL);
// 设置当前填充样式
void setfillstyle(BYTE* ppattern8x8);
// 设置当前填充样式
void setorigin(int x, int y);
// 设置坐标原点
void getaspectratio(float *pxasp, float *pyasp);
// 获取当前缩放因子
void setaspectratio(float xasp, float yasp);
// 设置当前缩放因子
getrop2();
// 获取前景的二元光栅操作模式
void setrop2(int mode);
// 设置前景的二元光栅操作模式
getpolyfillmode();
// 获取多边形填充模式
void setpolyfillmode(int mode);
// 设置多边形填充模式
void graphdefaults();
// 重置所有绘图设置为默认值
COLORREF getlinecolor();
// 获取当前线条颜色
void setlinecolor(COLORREF color); // 设置当前线条颜色
COLORREF gettextcolor();
// 获取当前文字颜色
void settextcolor(COLORREF color); // 设置当前文字颜色
COLORREF getfillcolor();
// 获取当前填充颜色
void setfillcolor(COLORREF color); // 设置当前填充颜色
COLORREF getbkcolor();
// 获取当前绘图背景色
void setbkcolor(COLORREF color); // 设置当前绘图背景色
getbkmode();
// 获取背景混合模式
void setbkmode(int mode);
// 设置背景混合模式
// 颜色模型转换函数
COLORREF RGBtoGRAY(COLORREF rgb);
void RGBtoHSL(COLORREF rgb, float *H, float *S, float *L);
void RGBtoHSV(COLORREF rgb, float *H, float *S, float *V);
COLORREF HSLtoRGB(float H, float S, float L);
COLORREF HSVtoRGB(float H, float S, float V);
// 绘图函数
COLORREF getpixel(int x, int y);
// 获取点的颜色
void putpixel(int x, int y, COLORREF color); // 画点
void moveto(int x, int y);
// 移动当前点(绝对坐标)
void moverel(int dx, int dy);
// 移动当前点(相对坐标)
void line(int x1, int y1, int x2, int y2);
void linerel(int dx, int dy);
// 画线(至相对坐标)
void lineto(int x, int y);
// 画线(至绝对坐标)
void rectangle
(int left, int top, int right, int bottom); // 画矩形
void fillrectangle (int left, int top, int right, int bottom); // 画填充矩形(有边框)
void solidrectangle(int left, int top, int right, int bottom); // 画填充矩形(无边框)
void clearrectangle(int left, int top, int right, int bottom); // 清空矩形区域
void circle
(int x, int y, int radius);
void fillcircle (int x, int y, int radius);
// 画填充圆(有边框)
void solidcircle(int x, int y, int radius);
// 画填充圆(无边框)
void clearcircle(int x, int y, int radius);
// 清空圆形区域
void ellipse
(int left, int top, int right, int bottom); // 画椭圆
void fillellipse (int left, int top, int right, int bottom); // 画填充椭圆(有边框)
void solidellipse(int left, int top, int right, int bottom); // 画填充椭圆(无边框)
void clearellipse(int left, int top, int right, int bottom); // 清空椭圆形区域
void roundrect
(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight);
// 画圆角矩形
void fillroundrect (int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight);
// 画填充圆角矩形(有边框)
void solidroundrect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight);
// 画填充圆角矩形(无边框)
void clearroundrect(int left, int top, int right, int bottom, int ellipsewidth, int ellipseheight);
// 清空圆角矩形区域
(int left, int top, int right, int bottom, double stangle, double endangle); // 画椭圆弧(起始角度和终止角度为弧度制)
(int left, int top, int right, int bottom, double stangle, double endangle); // 画椭圆扇形(起始角度和终止角度为弧度制)
void fillpie (int left, int top, int right, int bottom, double stangle, double endangle); // 画填充椭圆扇形(有边框)
void solidpie(int left, int top, int right, int bottom, double stangle, double endangle); // 画填充椭圆扇形(无边框)
void clearpie(int left, int top, int right, int bottom, double stangle, double endangle); // 清空椭圆扇形区域
void polyline
(const POINT *points, int num); // 画多条连续的线
void polygon
(const POINT *points, int num); // 画多边形
void fillpolygon (const POINT *points, int num); // 画填充的多边形(有边框)
void solidpolygon(const POINT *points, int num); // 画填充的多边形(无边框)
void clearpolygon(const POINT *points, int num); // 清空多边形区域
void floodfill(int x, int y, int border);
// 填充区域
// 文字相关函数
void outtext(LPCTSTR str);
// 在当前位置输出字符串
void outtext(TCHAR c);
// 在当前位置输出字符
void outtextxy(int x, int y, LPCTSTR str); // 在指定位置输出字符串
void outtextxy(int x, int y, TCHAR c);
// 在指定位置输出字符
int textwidth(LPCTSTR str);
// 获取字符串占用的像素宽
int textwidth(TCHAR c);
// 获取字符占用的像素宽
int textheight(LPCTSTR str);
// 获取字符串占用的像素高
int textheight(TCHAR c);
// 获取字符占用的像素高
int drawtext(LPCTSTR str, RECT* pRect, UINT uFormat); // 在指定区域内以指定格式输出字符串
int drawtext(TCHAR c, RECT* pRect, UINT uFormat);
// 在指定区域内以指定格式输出字符
// 设置当前字体样式(详见帮助)
nHeight: 字符的平均高度;
nWidth: 字符的平均宽度(0 表示自适应);
lpszFace: 字体名称;
nEscapement: 字符串的书写角度(单位 0.1 度);
nOrientation: 每个字符的书写角度(单位 0.1 度);
nWeight: 字符的笔画粗细(0 表示默认粗细);
bItalic: 是否斜体;
bUnderline: 是否下划线;
bStrikeOut: 是否删除线;
fbCharSet: 指定字符集;
fbOutPrecision: 指定文字的输出精度;
fbClipPrecision: 指定文字的剪辑精度;
fbQuality: 指定文字的输出质量;
fbPitchAndFamily: 指定以常规方式描述字体的字体系列。
void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace);
void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut);
void settextstyle(int nHeight, int nWidth, LPCTSTR lpszFace, int nEscapement, int nOrientation, int nWeight, bool bItalic, bool bUnderline, bool bStrikeOut, BYTE fbCharSet, BYTE fbOutPrecision, BYTE fbClipPrecision, BYTE fbQuality, BYTE fbPitchAndFamily);
void settextstyle(const LOGFONT *font); // 设置当前字体样式
void gettextstyle(LOGFONT *font);
// 获取当前字体样式
// 图像处理函数
void loadimage(IMAGE *pDstImg, LPCTSTR pImgFile, int nWidth = 0, int nHeight = 0, bool bResize = false);
// 从图片文件获取图像(bmp/jpg/gif/emf/wmf)
void loadimage(IMAGE *pDstImg, LPCTSTR pResType, LPCTSTR pResName, int nWidth = 0, int nHeight = 0, bool bResize = false); // 从资源文件获取图像(bmp/jpg/gif/emf/wmf)
void saveimage(LPCTSTR pImgFile, IMAGE* pImg = NULL);
// 保存图像
void getimage(IMAGE *pDstImg, int srcX, int srcY, int srcWidth, int srcHeight);
// 从当前绘图设备获取图像
void putimage(int dstX, int dstY, const IMAGE *pSrcImg, DWORD dwRop = SRCCOPY);
// 绘制图像到屏幕
void putimage(int dstX, int dstY, int dstWidth, int dstHeight, const IMAGE *pSrcImg, int srcX, int srcY, DWORD dwRop = SRCCOPY);
// 绘制图像到屏幕(指定宽高)
void rotateimage(IMAGE *dstimg, IMAGE *srcimg, double radian, COLORREF bkcolor = BLACK, bool autosize = false, bool highquality = true);// 旋转图像
void Resize(IMAGE* pImg, int width, int height); // 调整绘图设备的大小
DWORD* GetImageBuffer(IMAGE* pImg = NULL);
// 获取绘图设备的显存指针
IMAGE* GetWorkingImage();
// 获取当前绘图设备
void SetWorkingImage(IMAGE* pImg = NULL);
// 设置当前绘图设备
HDC GetImageHDC(IMAGE* pImg = NULL);
// 获取绘图设备句柄(HDC)
// 其它函数
int getwidth();
// 获取绘图区宽度
int getheight();
// 获取绘图区高度
int getx();
// 获取当前 x 坐标
int gety();
// 获取当前 y 坐标
void BeginBatchDraw(); // 开始批量绘制
void FlushBatchDraw(); // 执行未完成的绘制任务
void FlushBatchDraw(int left, int top, int right, int bottom); // 执行指定区域内未完成的绘制任务
void EndBatchDraw(); // 结束批量绘制,并执行未完成的绘制任务
void EndBatchDraw(int left, int top, int right, int bottom); // 结束批量绘制,并执行指定区域内未完成的绘制任务
HWND GetHWnd();
// 获取绘图窗口句柄(HWND)
TCHAR* GetEasyXVer();
// 获取 EasyX 当前版本
// 获取用户输入
bool InputBox(LPTSTR pString, int nMaxCount, LPCTSTR pPrompt = NULL, LPCTSTR pTitle = NULL, LPCTSTR pDefault = NULL, int width = 0, int height = 0, bool bOnlyOK = true);
// 鼠标消息
// 支持如下消息:
WM_MOUSEMOVE
WM_MOUSEWHEEL
鼠标滚轮拨动
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK 左键双击
WM_MBUTTONDOWN
WM_MBUTTONUP
WM_MBUTTONDBLCLK 中键双击
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_RBUTTONDBLCLK 右键双击
struct MOUSEMSG
// 当前鼠标消息
// Ctrl 键是否按下
// Shift 键是否按下
// 鼠标左键是否按下
// 鼠标中键是否按下
// 鼠标右键是否按下
// 当前鼠标 x 坐标
// 当前鼠标 y 坐标
// 鼠标滚轮滚动值 (120 的倍数)
bool MouseHit();
// 检查是否存在鼠标消息
MOUSEMSG GetMouseMsg();
// 获取一个鼠标消息。如果没有,就等待
void FlushMouseMsgBuffer(); // 清空鼠标消息缓冲区
&&& 再次感谢easyx的作者,提供了这么好的一个lib,方便了大家进行图像图像的编程。:-)补充:& & 后面还看到了ege库,也不错,网址在。& & 复杂一点的应用,可以选择使用duilib,用的也很多。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:3415090次
积分:34812
积分:34812
排名:第106名
原创:354篇
评论:2470条
(5)(6)(2)(4)(1)(1)(1)(1)(1)(1)(3)(1)(1)(1)(1)(1)(1)(2)(1)(1)(1)(1)(3)(1)(1)(4)(4)(1)(7)(4)(16)(2)(1)(2)(3)(1)(1)(1)(2)(1)(3)(4)(5)(4)(3)(4)(4)(4)(7)(8)(9)(5)(6)(9)(8)(7)(7)(11)(19)(27)(30)(43)(30)(2)(1)(1)(1)(1)

我要回帖

更多关于 easyx帮助文档 的文章

 

随机推荐