C++ 图形界面学习效果及代码

cpp 复制代码
#include <stdio.h>
#include<conio.h>
#include <stdlib.h> 
#include<graphics.h>
#define WIDTH 800
#define HEIGHT 480
#define SIZE 20
int main() {
	const char* str = "人生就是由欲望不满足而痛苦和满足之后无趣这两者所构成";
	const char* str1 = "每个人都没有绝对的道德底线,只是诱惑不够";
	IMAGE img,da;
	loadimage(&img, "gui.png"); 
	loadimage(&da, "da.gif");

	initgraph(WIDTH, 480);


	int i = 0;
	while (1) {
		setbkcolor(i++ * 10 % 0xffffff);
		clearcliprgn();
		putimage(70, 70, &img);
		putimage(170, 170, &img);
		//putimage(170, 0, &da);
		for (int i = 0; i <= WIDTH / SIZE; i++) {
			for (int j = 0; j <= HEIGHT / SIZE; j++) {				
				rectangle(i * SIZE, j * SIZE, SIZE, SIZE);
			}
		}		
		settextstyle(24, 0, "宋体"); // 设置字体大小和样式
		settextcolor(YELLOW);
		outtextxy(20, 20, str); // 在指定位置输出汉字

		settextstyle(24, 0, "黑体"); // 设置字体大小和样式
		settextcolor(RED);
		outtextxy(20, 80, str1); // 在指定位置输出汉字
				
		rectangle(18, 18, 20 + strlen(str) * 12, 44); // 绘制长方形

		getch();
		clearcliprgn();
	}
	
	return 0;
}
相关推荐
a59865225 分钟前
云手机怎么选?ARM服务器原生架构和X86模拟器差别很大
服务器·arm开发·智能手机
晨曦中的暮雨7 小时前
限流算法——固定窗口、滑动窗口、漏桶、令牌桶
java·开发语言·算法
程序员清风8 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
文丑颜不良啊9 小时前
LeetCode876~900题目解析
java·leetcode
readhere9 小时前
从ZYNQ7000开发板,学会启动嵌入式Linux系统——入门学习:EBAZ4205篇目录
linux·启动·嵌入式linux·zynq7000·ebaz4205
aloha_7899 小时前
Java 基础、集合、异常与 JUnit 5 速查
java·junit·sqlserver
知守观10 小时前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅10 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
打工仔折腾 AI10 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
yyuuuzz10 小时前
跨境站点日志时区混乱的排查记录
运维·服务器·网络·云计算·aws·1024程序员节