Day_05显示鼠标

该博客内容涉及在图形界面中初始化和显示鼠标指针的实现。通过定义一个二维字符数组来存储鼠标的形状,使用特定的颜色填充数组,然后将颜色数组写入图形缓冲区以在屏幕上呈现鼠标。主要函数包括`InitMouseCursor8`用于设置鼠标颜色,以及`OutPutMouseToMemory`用于在内存中输出鼠标图形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

鼠标的形状 存在一个二位数组之中,大小是16*16的

我们是用一个MouseColor的数组 来存储这个鼠标的颜色
鼠标自身存储在cursor数组当中

void InitMouseCursor8(char *pMouseColor, char BackColor)
/* 准备鼠标指针 16*16的 */
{
	static char cursor[16][16] = {
		"**************..",
		"*OOOOOOOOOOO*...",
		"*OOOOOOOOOO*....",
		"*OOOOOOOOO*.....",
		"*OOOOOOOO*......",
		"*OOOOOOO*.......",
		"*OOOOOOO*.......",
		"*OOOOOOOO*......",
		"*OOOO**OOO*.....",
		"*OOO*..*OOO*....",
		"*OO*....*OOO*...",
		"*O*......*OOO*..",
		"**........*OOO*.",
		"*..........*OOO*",
		"............*OO*",
		".............***"
	};
	int x, y;

	for (y = 0; y < 16; y++) {
		for (x = 0; x < 16; x++) {
			if (cursor[y][x] == '*') {
				pMouseColor[y * 16 + x] = COL8_BLACK;
			}
			if (cursor[y][x] == 'O') {
				pMouseColor[y * 16 + x] = COL8_WHITE;
			}
			if (cursor[y][x] == '.') {
				pMouseColor[y * 16 + x] = BackColor;
			}
		}
	}
	return;
}

显示鼠标

//把pMouseColor中的颜色 写入图形缓冲区
//pxSize pySize 设定鼠标大小 16*16  pX0 pY0 显示位置 bxSize 像素数
void OutPutMouseToMemory(char *pAdd, int nLineLen, int pxSize,
 int pySize, int pX0, int pY0, char *pMouseColor, int bxSize);
void OutPutMouseToMemory(char *pAdd, int nLineLen, int pxSize,
 int pySize, int pX0, int pY0, char *pMouseColor, int bxSize)
{
	int x, y;

	for(y = 0; y < pySize; y++)
	{
		for(x = 0; x < pxSize; x++)
		{
			pAdd[(y+pY0)*nLineLen + pX0 + x] = 
			pMouseColor[y*bxSize+x];
		}
	}

	return;
}

main

	int mx, my;
	char szBuf[40];
	char MouseColor[256];//鼠标的大小是16*16的


	mx = (nXsize - 16) / 2; /* 在界面上 显示的位置 */
	my = (nYsize - 28 - 16) / 2;
	InitMouseCursor8(MouseColor, COL8_LightDarkBlue);
	OutPutMouseToMemory(pAdd, nXsize, 16, 16, mx, my, MouseColor, 16);
	sprintf(szBuf, "(%d, %d)", mx, my);
	OutPutString8_ASCII(pAdd, nXsize, 0, 0, COL8_DarkRed, szBuf);

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值