VC开发圣诞程序雪花飞舞的世界

又到一年圣诞。为了烘托气氛。在两天前。写了个圣诞的小程序。

首先这个程序用到比较多的知识点

众所周知。一般情况下在MFC类库里进行png的贴图都有点麻烦

因为MFC一般用bmp格式的贴图。

于是我采用GDI的贴图形式贴png图

采用分层窗口,透明处理,以及鼠标穿透来使窗口透明,界面变到桌面

本来可以采用定时器来进行雪花的时间设定。但是为了更好的控制。我采用了一条线程来处理

自设一个Image类来存储所有图像 并采用msdn上的一段代码使png图片封装到资源。以IDX_的形式调用

采用静态链接库。封装GDI的图像库。

CDC *pDCDst=this->GetDC();
	CDC dcSrc;
	dcSrc.CreateCompatibleDC(pDCDst);
	CBitmap bmp;
	bmp.CreateCompatibleBitmap(pDCDst,cx,cy);
	dcSrc.SelectObject(&bmp);

	//用GDI+显示PNG图片
	Graphics _Graphics(dcSrc.m_hDC);
	if(limit<100)
	{
		_Graphics.DrawImage(myimage._pPic01,600,300,myimage._pPic01->GetWidth(),myimage._pPic01->GetHeight());
	}
	else if(limit>=100&&limit<200)
	{
		_Graphics.DrawImage(myimage._pPic02,600,300,myimage._pPic02->GetWidth(),myimage._pPic02->GetHeight());
	}
	for(int i=0;iReleaseDC(pDCDst);
	if(limit<300)
	{
	  limit++;
	}
这段代码是贴图的主要代码。

最后的效果如下

VC开发圣诞程序雪花飞舞的世界_第1张图片

首先产生的奇迹冬瓜logo透明

VC开发圣诞程序雪花飞舞的世界_第2张图片


接着logo消失 变成祝福语 雪花小范围飘落

VC开发圣诞程序雪花飞舞的世界_第3张图片


接着雪花变得密集

以下是源代码的免积分下载地址

点击打开链接

你可能感兴趣的:(c++)