c语言装b程序,C语言打造表白和装逼利器:亲爱的让我们相爱在一起,酷炫的梦幻...
原标题:C语言打造表白和装逼利器:亲爱的让我们相爱在一起,酷炫的梦幻
这个程序是专门为2017情人节而开发的,是在之前程序的基础上,进行的总结和改进,使界面变得更加酷炫的梦幻,还增加了些许的浪漫气息,很适合表白和装逼使用。
由于这个程序酷炫,而且实现原理和编码都不难,小编为此小程序制作课教程(C/C++学习群:99816772,源码共享)。如果你已经学过C或C++,那么只要跟着视频教程一步步操作,就完全可以在两三天之内理解并实现出这个小程序。那么2018年5月20日快到了,你完全可以自己实现一个这样的小程序。
效果:
注意点:
此图是动态图,以实物为准,画是动态,蝴蝶也是动态的。
功能:
1.窗口透明;
2.显示位图;
开发环境:VS2013
开发语言:MFC + C/C++
主要代码:
/*
设计想法是:
1. 先按顺时针方向,依次在屏幕四个角落显示IDB_BITMAP2花儿;
2. 然后再顺时针方向依次显示心形花儿;
3. 在心形图案的中心,显示一朵更大的花儿;
4. 绘制蝴蝶飞舞;
5. 在心形图案的下方显示祝福语和署名;
*/
int i = 0, j = 0;
// 花儿图片参数
int iElapseSlow = 2000; // 停顿时间间隔
int iElapseFast = 1500; // 停顿时间间隔
int iFirstFlowerWidth = 450;
int iFirstFlowerHeight = 356;
int iFirstNumFrame = 21;
int iFirstNumFlowering = 7;
int iSecondFlowerWidth = 250;
int iSecondFlowerHeight = 198;
int iSecondNumFrame = 25;
int iSecondNumFlowering = 8;
// 获取屏幕宽和高
int iWidth = ::GetSystemMetrics(SM_CXSCREEN);
int iHeight = ::GetSystemMetrics(SM_CYSCREEN);
// 1. 先按顺时针方向,依次在屏幕四个角落显示IDB_BITMAP2花儿
// 初始化
for (i = 0; i < 4; i++)
{
m_myFlower[i].myFlower.Init(IDB_BITMAP2, 0, 0, iSecondNumFrame, iSecondNumFlowering);
m_myFlower[i].myFlower.SetWidthHeight(iSecondFlowerWidth, iSecondFlowerHeight);
}
// 设置显示坐标位置
m_myFlower[0].myFlower.SetPosXY(0, 0);
m_myFlower[1].myFlower.SetPosXY((iWidth - iSecondFlowerWidth), 0);
m_myFlower[2].myFlower.SetPosXY((iWidth - iSecondFlowerWidth), (iHeight - iSecondFlowerHeight));
m_myFlower[3].myFlower.SetPosXY(0, (iHeight - iSecondFlowerHeight));
// 显示
for (i = 0; i < 4; i++)
{
m_myFlower[i].bExist = TRUE;
Sleep(iElapseSlow); // 停顿
}
// 2. 然后再顺时针方向依次显示心形花儿
/*
将屏幕一部分看成是8x8的格子,则心形图案为:
* * * * * * * *
* O O * O O * *
O * * O * * O *
O * * * * * O *
* O * * * O * *
* * O * O * * *
* * * O * * * *
* * * * * * * *
由于电脑屏幕大都是长方形,若屏幕高为iScreenHeight,
则我们就截取iScreenHeight x iScreenHeight 的区域
划分为8x8的格子!
各个心形的坐标位置都可以计算出来!
先绘制左半边,在绘制右半边
*/
// 计算
int iPerImageWidth = iHeight / 8;
int iPerImageHeight = iHeight / 8;
int x = ((iWidth - iHeight) / 2) + (iPerImageWidth / 2);
int y = 0;
// 初始化
for (i = 4; i < 18; i++)
{
m_myFlower[i].myFlower.Init(IDB_BITMAP1, x, y, iFirstNumFrame, iFirstNumFlowering);
m_myFlower[i].myFlower.SetWidthHeight(iPerImageWidth, iPerImageHeight);
}
// 设置显示坐标位置
m_myFlower[4].myFlower.SetPosXY((x + 3*iPerImageWidth), (y + 2*iPerImageHeight));
m_myFlower[5].myFlower.SetPosXY((x + 2 * iPerImageWidth), (y + 1 * iPerImageHeight));
m_myFlower[6].myFlower.SetPosXY((x + 1 * iPerImageWidth), (y + 1 * iPerImageHeight));
m_myFlower[7].myFlower.SetPosXY((x + 0 * iPerImageWidth), (y + 2 * iPerImageHeight));
m_myFlower[8].myFlower.SetPosXY((x + 0 * iPerImageWidth), (y + 3 * iPerImageHeight));
m_myFlower[9].myFlower.SetPosXY((x + 1 * iPerImageWidth), (y + 4 * iPerImageHeight));
m_myFlower[10].myFlower.SetPosXY((x + 2 * iPerImageWidth), (y + 5 * iPerImageHeight));
m_myFlower[11].myFlower.SetPosXY((x + 3 * iPerImageWidth), (y + 6 * iPerImageHeight));
m_myFlower[12].myFlower.SetPosXY((x + 4 * iPerImageWidth), (y + 1 * iPerImageHeight));
m_myFlower[13].myFlower.SetPosXY((x + 5 * iPerImageWidth), (y + 1 * iPerImageHeight));
m_myFlower[14].myFlower.SetPosXY((x + 6 * iPerImageWidth), (y + 2 * iPerImageHeight));
m_myFlower[15].myFlower.SetPosXY((x + 6 * iPerImageWidth), (y + 3 * iPerImageHeight));
m_myFlower[16].myFlower.SetPosXY((x + 5 * iPerImageWidth), (y + 4 * iPerImageHeight));
m_myFlower[17].myFlower.SetPosXY((x + 4 * iPerImageWidth), (y + 5 * iPerImageHeight));
// 显示
for (i = 4; i < 18; i++)
{
m_myFlower[i].bExist = TRUE;
Sleep(iElapseFast); // 停顿
}
// 3. 在心形图案的中心,显示一朵更大的花儿
m_myFlower[18].myFlower.Init(IDB_BITMAP1, ((x + 3 * iPerImageWidth) + iPerImageWidth / 2) - (iFirstFlowerWidth / 2) ,
((y + 3 * iPerImageHeight) + iPerImageHeight / 2) - (iFirstFlowerHeight / 2), iFirstNumFrame, iFirstNumFlowering);
m_myFlower[18].myFlower.SetWidthHeight(iFirstFlowerWidth, iFirstFlowerHeight);
m_myFlower[18].bExist = TRUE;
Sleep(iElapseSlow); // 停顿
// 4. 绘制蝴蝶飞舞
m_myButterfly.myButterfly.Init(IDB_BITMAP3, 0, 0, 37, 0);
m_myButterfly.myButterfly.SetWidthHeight(iWidth, iHeight);
m_myButterfly.bExist = TRUE;
Sleep(iElapseSlow); // 停顿
// 5. 在心形图案的下方显示祝福语和署名
// 祝福语
m_myBless.myButterfly.Init(IDB_BITMAP4, (x + 1 * iPerImageWidth), (y + 5 * iPerImageHeight), 1, 0);
m_myBless.myButterfly.SetWidthHeight((6 * iPerImageWidth), iPerImageHeight);
m_myBless.bExist = TRUE;
Sleep(iElapseSlow); // 停顿
// LOGO
m_myLogo.myButterfly.Init(IDB_BITMAP5, (x + 6 * iPerImageWidth), (y + 1 * iPerImageHeight), 1, 0);
//m_myLogo.myButterfly.SetWidthHeight();
m_myLogo.bExist = TRUE;
以上为部分源码,由于使用的是MFC编写的,生成代码过多,就不一一粘贴出来了.学习源于兴趣,其实从做这种小东西开始。慢慢的越学越有意思,如果阁下正处学习阶段,不妨参详C/C++ 学习群:C/C++学习群:99816772,让学编程既有浪漫,又有丰富内容。
责任编辑:
c语言装b程序,C语言打造表白和装逼利器:亲爱的让我们相爱在一起,酷炫的梦幻...相关推荐
- 趣味c语言代码,趣味程序C语言
<趣味程序C语言>由会员分享,可在线阅读,更多相关<趣味程序C语言(36页珍藏版)>请在人人文库网上搜索. 1.趣味程序导学C语言,你玩过电脑游戏吗?,你喜欢电脑游戏吗?,电脑 ...
- c语言行计数程序,C语言非常简单的字符统计程序50行
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 该程序用于实现linux系统中wc命令的最简单模式 wc 命令用于统计文件中字符信息. [xx@localhost 1.5]$ wc 01.c 02.c ...
- c语言商场收款程序,c语言 如何用switch语句编写一个有关商场购物金额优惠的选择程式...
c语言 如何用switch语句编写一个有关商场购物金额优惠的选择程式以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语 ...
- c语言中用temp程序,e__temp_c语言第02章作业.doc
e__temp_c语言第02章作业 C语言程序设计第02章作业 单选题 1.假定有以下变量定义:int k=7,x=12; 则能使值为3 的表达式是_______. A)x%=(k%=5) B)x%= ...
- c语言银行存钱程序,c语言银行存钱.doc
c语言银行存钱 红河学院工学院 课 程 设 计 报 告 专业:计算机技术与科学 年级: 11 级 学号:6 姓名: 曹 永 前 成绩: 批改时间: 红河学院 工学院编制说 明 1.本报告供学生课程设计 ...
- c语言英文排版程序,C语言设计—英文排版系统精品.docx
一.C语言课程设计的目的: 高级语言课程设计是学习完<高级语言程序设计>课程后进行的一次全面的综合性上机实验.其目 的在于为同学提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和 ...
- c语言字符游动程序,C语言实现扫雷小游戏详解
本文实例为大家分享了C语言实现扫雷小游戏的具体代码,供大家参考,具体内容如下 一.实现功能 首先显示一个小菜单,选择是否玩游戏.当用户选择退出时,程序运行结束,当用户选择玩游戏时,将提示用户输入扫雷位 ...
- c语言malloc函数程序,c语言 malloc函数详解
谈到malloc函数相信学过c语言的人都很熟悉,但是malloc底层到底做了什么又有多少人知道. 1.关于malloc相关的几个函数 关于malloc我们进入Linux man一下就会得到如下结果: ...
- c语言机票预定程序,c语言程序设计报告飞机票预订系统.doc
目录 TOC \o "1-3" \h \z \u HYPERLINK \l _Toc1220 目录 PAGEREF _Toc1220 i HYPERLINK \l _Toc6278 ...
- c语言电子日历程序,c语言程序设计电子日历
c语言程序设计电子日历 目 录 一.设计思路 二.功能实现详细设计 三.测试结果分析 四.用户手册 五.设计体会 一.设计思路: If语句: 判断该年是否为闰年,判断一年是否为闰年需要符合下面二者之一 ...
最新文章
- MySQL 5.7 密码策略
- 今年期末微积分考试试题:看看你能够在两个小时内做对几道题?
- BestCoder-Round#38
- vs2005常用调试快捷键 (转载)
- luogu_3966【题解】单词 AC自动机
- Oracle 11g Dataguard搭建及知识梳理
- 3D卷积GAN飞起!微软“可缩放”新框架只需2D数据即可生成逼真3D模型
- CV Code | 本周新出计算机视觉开源代码汇总(含自动驾驶目标检测、医学图像分割、风格迁移、语义分割、目标跟踪等)...
- 算法(二):分而治之
- 学习HTML的第二次课
- openresty 前端开发入门三之JSON篇
- brctl 设置ip_docker配置独立桥接IP的方法
- 游戏策划小白笔记——Common Sense(二)
- Altium差分布线和等长方法
- Node.js 中文乱码解决
- 跳棋的C语言,跳棋游戏C语言程序设计(数据结构课程设计报告).doc
- 交换机trunk接口
- 如何把照片压缩到20k一下_如何将一寸照片压缩到20k以内?
- Android获取wifi的ip地址
- 常用的统计学指标及其含义