一个恶搞小程序,随机在桌面上生成小图标

在刷视频的时候看到这些就想着自己能不能写一个

#include <Windows.h>
#include <stdio.h>
#include <time.h>

int main()
{
	HINSTANCE hInstance = LoadLibrary(TEXT("shell32.dll"));

	HWND hwnd = GetDesktopWindow();
	HDC hdc = GetWindowDC(hwnd);

	// 定义一个图标数组,用于存储提取的图标句柄
	HICON icons[100];
	// 提取图标,从第 0 个图标开始,一共提取 10 个图标
	int numIcons = ExtractIconEx(TEXT("shell32.dll"), 0, icons, NULL, 100);

    //获取主屏幕的宽和高
	int w = GetSystemMetrics(SM_CXSCREEN);
	int h = GetSystemMetrics(SM_CYSCREEN);

	// 释放加载的 DLL
	FreeLibrary(hInstance);
	int x = 1000;
	while (x--)    //别改为x或1让程序一直执行的😁
	{
		for (int i = 0; i < 100; i++)
		{
            //800+200不改为w变量
            //600+200不改为h变量
			DrawIcon(hdc, rand()%800+200, rand()%600+200, icons[i]);
		}
	}

	getchar();
	return 0;
}

windows的默认图标都是放在一些dll和exe中的,不是单独以.ico格式出现,所以这里使用了shell32.dll中的,因为这个了里面的比较多。

在DrawIcon(hdc, rand()%800+200, rand()%600+200, icons[i]);,的第二个参和第三个参是位置x和y,可以随意修改。上面给的代码时把图标的生成位置限定在了一个较小的区域内容。

提醒:

        1、建议不要把800+200改为w变量

        2、建议不要把600+200改为h变量

        3、建议不要把x--改为x或1

        4、如果你要改,建议三个就一起改了,建议还是不改。图个乐就行的😁

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值