[视觉错觉] 隐藏的爱心

群里的作业,睡觉前完成了。

一个有趣的视觉错觉程序。

执行效果如下:

PS:程序执行后可能有点大,效果不太明显,那就离远点看试试。

完整的源代码如下:

////////////////////////////////////////
// 程序:视觉错觉:隐藏的爱心
// 作者:BestAns
// 编译环境:VS2019,EasyX_20211109
// 编写日期:2021-11-29
//
#include <graphics.h> 
#include <conio.h>

const int UNIT = 43;

// 画背景单元方格
void DrawBlock(int x, int y, bool odd)
{
	int c1, c2;
	if (odd) { c1 = BLACK; c2 = WHITE; }
	else	 { c1 = WHITE; c2 = BLAC
...

基于 EasyX 的文本框(TextBox)和按钮(Button)控件

这个文本框只是随手写了一个例子,只实现了最基本的文本框功能(支持中文),抛砖引玉吧。

如果有能力,可以在阅读代码后进一步封装、完善功能。

目前输入效果如下:

注意:请使用最新版本 EasyX 编译以下代码

完整源代码如下:

////////////////////////////////////////
// 程序:基于 EasyX 的文本框 + 按钮控件
// 作者:BestAns
// 编译环境:VS2019,EasyX_20211109
// 编写日期:2021-10-28
// 最后修改:2021-11-20
//
#include <graphics.h>



// 实现文本框控件
class EasyTextBox
{
private:
	int left = 0, top = 0, right = 0, bottom = 0;	// 控件坐标
	wchar_t* te
...

窗口技巧:利用窗体句柄实现圆形窗口

该篇文章讲述如何做一个圆形窗口。根据该思路,可以实现各种形状的窗口。

阅读该文章前,请先阅读

  1. “VC绘图/游戏简易教程-10:用鼠标控制绘图/游戏程序”
  2. “VC绘图/游戏简易教程-15:窗体句柄(Windows 编程入门)”

基础程序

先写一个基础程序,实现按鼠标右键退出,完整代码如下:

#include <graphics.h>
#include <conio.h>

int main()
{
	initgraph(640, 480);				// 初始化图形窗口
	ExMessage m;						// 定义鼠标消息

	while (true)
	{
		m = getmessage(EM_MOUSE);		// 获取一条鼠标消息

		switch (m.message)
		{
			// 按鼠标右键退出程序
			case
...