关于ACLLib

2023-05-16

文章目录

  • ACLLib基本操作:Dev C++下
    • 创建配置:
    • 绘图函数:
    • The Callbacks(回调事件)
  • MVC设计模式

ACLLib基本操作:Dev C++下

创建配置:

1,新建项目—>Windows application—>C项目–>输入项目名称
2,将acllib.cacllib.h文件拷贝到创建的项目目录
3,菜单栏–>项目–>项目属性–>参数–>链接–>加入库文件,如下:(Dev C++具体目录以安装时为准)

  • 32位下,库文件是:

“C:/Program Files/Dev-Cpp/MinGW32/lib/libwinmm.a”

“C:/Program Files/Dev-Cpp/MinGW32/lib/libmsimg32.a”

“C:/Program Files/Dev-Cpp/MinGW32/lib/libkernel32.a”

“C:/Program Files/Dev-Cpp/MinGW32/lib/libuser32.a”

“C:/Program Files/Dev-Cpp/MinGW32/lib/libgdi32.a”

“C:/Program Files/Dev-Cpp/MinGW32/lib/libole32.a”

“C:/Program Files/Dev-Cpp/MinGW32/lib/liboleaut32.a”

“C:/Program Files/Dev-Cpp/MinGW32/lib/libuuid.a”

  • 64位下,库文件是:

C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libwinmm.a

C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libmsimg32.a

C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libkernel32.a

C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libuser32.a

C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libgdi32.a

C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libole32.a

C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/liboleaut32.a

C:/Program Files/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib/libuuid.a

  • 如果出现“undefined reference to TransparentBlt ”这个错误,两个解决方案:
  1. 打开acllib.c,找到“TransparentBlt”所在的行,把整行注释掉;
  2. 打开工程配置,找到编译器选项,加入-DWINVER=0x0500。

绘图函数:

1,创建窗口:

void initWindow(const char title[], int left, int top, int width, int height);

窗口位置参数lefttop可以都设置为默认值:DEFAULT,让系统自行调整位置。
2,启动和结束绘图:
画图内容要写在下面两个函数之间

void beginPaint();
void endPaint();

3,主函数:

int Setup()
{
	return 0;
}

4,终端窗口:
如果需要用scanfprintf,则需要首先:

initConsole();

5,画点(像素点)

void putPixel(int x, int y, ACL_Color color);
ACL_Color getPixel(int x, int y)

6,颜色

  • RGB(r,g,b)
    红色–>RGB(255,0,0)
  • 预设值:
    BLACK,RED,GREEN,BLUE,CYAN,MAGENTA,YELLOW,WHITE

7,windows坐标轴从左上角(0,0)开始
x轴自左向右增长,y轴自上向下增长

8,线:

void moveTo(int x, int y);
void moveRel(int dx, int dy);
void line(int x0,int y0,int xl, int yl);
void lintTo(int x, int y);
void lineRel(int dx, int dy);
void arc(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nXStartArc, int nYStartArc, int nXEndArc, int nYEndArc);

9,画笔:

void setPenColor(ACL_Color color);
void setPenWidth(int width);
void setPenStyle(ACL_Pen_Style style);
PEN_STYLE_SOLID,
PEN_STYLE_DASH, /* ------- */
PEN_STYLE_DOT,  /* ......*/
PEN_STYLE_DASHDOT, /*-.-.-.-. */
PEN_STYLE_DASHDOTDOT, /*-..-..-.. */
PEN_STYLE_NULL

10,面:

void chrod(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int 
nXRadial1, int nYRadial1, int nXRadial2, int nYRadial2);
void ellipse( int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
void pie(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int 
nXRadial1, int nYRadial1, int nXRadial2, int nYRadial2);
void rectangle(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
void roundrect(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int 
nWidth, int nHeight)

11,刷子:
画笔负责线及⾯的边缘,刷⼦负责⾯的内部

void setBrushColor(ACL_Color color);
void setBrushStyle(ACL_Brush_Style style);
• BRUSH_STYLE_SOLID = -1,
• BRUSH_STYLE_HORIZONTAL,	 	 /* ----- */
• BRUSH_STYLE_VERTICAL,		 /* ||||| */
• BRUSH_STYLE_FDIAGONAL,	 	 /* \\\\\ */
• BRUSH_STYLE_BDIAGONAL,	 	 /* / */
• BRUSH_STYLE_CROSS,	 	 	 /* +++++ */
• BRUSH_STYLE_DIAGCROSS,	 	 /* xxxxx */

12, 文字:

void setTextColor(ACL_Color color);
void setTextBkColor(ACL_Color color);
void setTextSize(int size);
void setTextFont(char *pFontName);
void paintText(int x, int y, const char *pStr)

The Callbacks(回调事件)

键盘:(普通按键,特殊功能键,按下和抬起两种状态)
typedef void(*KeyboardEventCallback)(const char key);
键盘上的可读字符:
typedef void(*CharEventCallback)(int key);
鼠标:(移动,按下和抬起)
typedef void(*MouseEventCallback)(int x, int y, int button, int status);
定时器:
typedef void(*TimerEventCallback)(int timerID);

MVC设计模式

View <-- Model <-- Ctrl

  • View :

读数据,放入mod;
显示时,从model取数据

  • Mod:

存储数据;修改后会通知View

  • Ctrl:

告诉Model数据怎么改

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于ACLLib 的相关文章

随机推荐

  • ping 原理与ICMP协议及Ping命令的过程与返回信息分析

    一 ping 原理与ICMP协议 ping 的原理 ping 程序是用来探测主机到主机之间是否可通信 xff0c 如果不能ping到某台主机 xff0c 表明不能和这台主机建立连接 ping 使用的是ICMP协议 xff0c 它发送icmp
  • [C++11] 循环引用

    前言 虽然C 43 43 11中的智能指针 xff0c 一定程度上简化了C 43 43 当中的内存管理 xff1b 但是 xff0c shared ptr lt gt 的使用同时也引出了另一个问题 xff1a 循环引用 例子 让我们先来看一
  • MyBatis Plus快速入门

    MyBatis Plus 国产的开源框架 xff0c 基于 MyBatis 核心功能就是简化 MyBatis 的开发 xff0c 提高效率 MyBatis Plus 快速上手 Spring Boot 2 3 0 43 MyBatis Plu
  • jpeg库的移植步骤(GEC6818)

    移植jpeg库 1 将jpegsrc v9a tar gz 解压到共享目录 tar zxvf jpegsrc v9a tar gz C x c z j 压缩GZ xff1a cz 解压bz2格式 xff1a xj C xff1a 指定包解压
  • NSFileManager文件和文件夹的操作

    NSFileManager的文件操作 上面中简单的介绍了数据存储 但是在获取数据 要存储时 一般需要创建一个单独的文件或者文件夹报保存你要存储的数据 所以要介绍一下NSFileManager 这个很重要 在日常开发中会经常使用到这个类 NS
  • 数组排序(C 语言实现)

    本文主要包含常见的数组排序方法 选择排序 原理 在原始数组中取未排序的首元素 xff0c 与其后方所有元素比较 xff0c 不满足顺序 xff0c 则交换首元素此时满足条件 xff0c 未排序部分后移重复上述操作 代码实现 include
  • qt 配置open3d

    一 配置前要先编程open3d 二 开始配置 新建txt 把txt 修改为 pri 在pro 文件中添加 include F xuwanlu control pri 重新构建项目然后回多出来pri 在pri中添加open3d目录 INCLU
  • Python的序列切片

    Python提供了一种把序列切成小块的操作 xff0c 称为切片 xff08 slice xff09 操作 xff0c 其本质是访问由序列中的某些元素所构成的子集 Python的序列数据结构都支持切片操作 xff0c 如列表 元组 字符串等
  • CMFCShellTreeCtrl控件的效率改进

    VS2010新增加 xff08 相较于VC6 xff09 了一个CMFCShellTreeCtrl 类 xff0c 说实话 xff0c 这个类确实很好 xff0c 但是有一点你会发现 xff0c 在展开某些节点的时候可能会很慢很慢 这严重影
  • 利用storyboard 自定义cell

    现在讲究的是快速开发 xff0c storyboa 39 r 39 d自定义cell还是比较少用得 xff0c 但是开发起来特别快 镔哥就不多说了 xff0c 直接给你们demo看吧 1 xff1a 自定义cell xdxTableView
  • gcc命令行详解

    1 gcc包含的c c 43 43 编译器 gcc cc c 43 43 g 43 43 gcc和cc是一样的 xff0c c 43 43 和g 43 43 是一样的 xff0c 没有看太明白前面这半句是什 么意思 一般c 程序 就用gcc
  • 解决远程桌面不能复制粘贴的方法

    1 杀死rdpclip exe进程 2 开始 gt 运行 gt rdpclip exe 重新运行此程序
  • 《计算机应用》期刊投稿经验

    文章目录 投稿经历投稿流程正刊 OR 增刊版面费注意事项常见问题 投稿经历 1 做的区块链方向 2 从做完试验 xff0c 然后开始写论文 xff0c 写了一个月左右 xff0c 然后交给导师改 xff0c 改了一个礼拜 xff0c 之后就
  • mac初次使用php环境简单搭建

    mac电脑默认已经安装apache服务 xff0c apache配置文件路径为 xff1a etc apache2 httpd conf apache服务启动 关闭 重启命令 xff1a sudo apachectl start stop
  • 阿里云缓存服务器里面的一个坑

    今天在做视频同步的时候无意中发现的一个坑 公司的服务器是放在了阿里云上面的 xff0c 阿里云有个十分给力的路由缓存功能 xff0c 就是通过各种cache头去访问服务器的时候 xff0c 阿里云会把这个结果保存到缓存服务器中 xff0c
  • 【树莓派4B学习笔记】无显示屏使用网线配置树莓派系统

    在咸鱼买了个二手树莓派4B 4G xff0c 准备拿来学习Linux的 xff0c 不过目前还是先学习配置官方的系统Raspios xff08 以前叫Raspbian xff09 其实到手的时候卡里有系统 xff0c 但还是想自己动手试试
  • ESP8266工作模式/烧录模式(整合)

    目录 一 硬件部分 1 工作模式 烧录模式 Q amp A xff1a 二 ESP 01 arduino烧写 1 首选项配置 2 https arduino esp8266 com stable package esp8266com ind
  • 以太网与 TCP/IP

    以太网 Ethernet 以太网是一套标准 xff0c 制定了相当于 OSI 模型 中第一层 xff08 物理层 xff09 和第二层 xff08 数据链路程 xff09 的技术规范 在物理层上 xff0c 以太网采用 RJ45 接口和双铰
  • Debian10(xfce4)Linux换源中文输入法sudo等常用软件安装配置

    文章目录 1 debian系统安装选英文还是中文2 安装设置sudo xff08 debian默认是没有的 xff09 xff1a 3 debian10换国内源https测试版testing源稳定版stable源 3 安装网络管理插件与代理
  • 关于ACLLib

    文章目录 ACLLib基本操作 xff1a Dev C 43 43 下创建配置 xff1a 绘图函数 xff1a The Callbacks xff08 回调事件 xff09 MVC设计模式 ACLLib基本操作 xff1a Dev C 4