20几行代码,用C++让微信地球转起来,太酷了!视频手把手教你,零基础人人学会

Posted 大零蛋带你零基础学电脑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20几行代码,用C++让微信地球转起来,太酷了!视频手把手教你,零基础人人学会相关的知识,希望对你有一定的参考价值。


每种语言有它适合的场合。
今天,来讨论如何实现下面效果:

20几行代码,用C++让微信地球转起来,太酷了!【视频手把手教你,零基础人人学会】


熟悉吧?微信的登录界面
但一般微信登录界面地球是不动的,如何让地球动起来呢?
怎么实现?

有人说用Python实现。为啥, 因为Python简单?
Python实现,需要 90行代码,出处见下面:
https://mp.weixin.qq.com/s/FNzlNHGDPLB5WQIIanIwlQ
点文末阅读原文直达90行代码实现的python版本

我今天要说的是, 用C++实现!
C++难么?
同样的效果,我用C++实现,只需要 20几行代码!


不用MFC

说明:不用MFC,这是和很多其他课程、很多教科书不同的。

我们采用的方式是:使用Windows API

通过这种方式,使用C++编写Windows窗口图形界面程序,

上手将非常容易!1小时就学会噢
而使用MFC,你不觉得它很臃肿吗?很费事吗?不好学吗?……这就是不用MFC的原因。

来看下面视频, 手把手教给大家用 C++实现,人人可以学会:

20几行代码,用C++让微信地球转起来,太酷了!【视频手把手教你,零基础人人学会】


想自己试一试不?相关素材下载链接(电脑上打开):
http://www.nsitedu.com/share/share.htm
零基础,人人都可以做出来,下载试试吧
VC2010的安装和基本用法见:https://ke.qq.com/course/441062

附源代码
#include "resource.h"#include "BForm.h"#include "BTimer.h"#include "BDeviceContext.h"#include "mdlTransBMP.h"
CBForm form1(ID_form1);CBTimer timMove;CBDeviceContext mDCBack, mDCWX;
void picMain_Paint(){ static int x=0; CBDeviceContext dc; dc.SetFromGetDC(form1.Control(ID_picMain).hWnd()); HDC hDC = dc.hDC();
CBDeviceContext dcMem; dcMem.SetFromCreateCompatible(hDC,375,592); HDC hDCMem = dcMem.hDC();  // 将背景绘制到 dcMem BitBlt(hDCMem, 0, 210, 375, 288, mDCBack.hDC(), x, 0, SRCCOPY); x+=10; if (x>1026-375) x=0;  // 将微信背景“透明”绘制到内存设备环境 TBDrawTransParentBitmap(hDCMem, 0, 0, mDCWX.hDC(), RGB(255,255,255));  //将内存设备环境一次性绘制到控件 BitBlt(hDC, 0, 0, 375, 592, hDCMem, 0, 0, SRCCOPY);}
void CALLBACK timMove_Timer(HWND hWnd, UINT uMsg, UINT idEvent, DWORD dwTime){ InvalidateRect(form1.Control(ID_picMain).hWnd(), NULL, true);}
void form_Load(){ form1.Control(ID_picMain).Move(0,0,375,592); //加载位图资源 HDC hDC = GetDC(form1.Control(ID_picMain).hWnd()); mDCBack.SetFromBitmap(hDC, IDB_BITMAP1); mDCWX.SetFromBitmap(hDC, IDB_BITMAP2); ReleaseDC(form1.Control(ID_picMain).hWnd(), hDC); //设置定时器 timMove.hWndAssoSet(form1.hWnd()); timMove.IntervalSet(100); timMove.pFuncCallBackSet(timMove_Timer); timMove.EnabledSet(true);}
int main(){ form1.EventAdd(0, eForm_Load, form_Load); form1.EventAdd(ID_picMain, ePaint, picMain_Paint); form1.IconSet(IDI_ICON1);  form1.Show();  return 0;}


除去空行、除去注释、除去函数头,有效代码也就20几行。

比用90行代码实现的python版,如何?20几行代码,用C++让微信地球转起来,太酷了!【视频手把手教你,零基础人人学会】


20几行代码,用C++让微信地球转起来,太酷了!【视频手把手教你,零基础人人学会】


这个真该给那些唯python“崇拜者”们好好看看
说C++麻烦/难,python简单/容易的
真是啪啪打脸呐~~


20几行代码,用C++让微信地球转起来,太酷了!【视频手把手教你,零基础人人学会】






但是,话又说回来:这种比较不科学!


我说这个的意思不是诋毁python、不是反对python

而是强调:工具包的作用。

工具包都是人编的,系统库函数也是人编的。
自己设计好了通用模块,就这威力!
我那本《老兵新传:Visual Basic核心编程及通用模块开发》一书中也是在讲这个思想。
所以,那些说python简单的、唯python的“崇拜者”们:你们的认为是假的!



有兴趣大家可以看一下下面两个视频,把C++搞得跟VB一样:




20几行代码,用C++让微信地球转起来,太酷了!【视频手把手教你,零基础人人学会】


我比较反感的是,整天挂在嘴边,这个语言好,那个语言坏,今天这个语言排名靠前,明天那个语言排名靠后……显得自己懂得很多,显得自己用的语言最“时髦”……而实际到了解决问题呢?一个问题解决不了,百无一用


20几行代码,用C++让微信地球转起来,太酷了!【视频手把手教你,零基础人人学会】





总之,正确看待语言,

正确选择语言。

要看清工具包的作用,看清本质。

学哪种语言都可以,无所谓对错

但是:切忌盲目跟风!这是极度错误的!

就说到这。


更多阅读:






阅读原文直达90行代码实现的python版本



好消息!


现在,这门课上线啦!已经在网上开课,向大家开放啦

不是天津大学本校的同学,也可以学习啦!


这就是



详细点下面链接



以上是关于20几行代码,用C++让微信地球转起来,太酷了!视频手把手教你,零基础人人学会的主要内容,如果未能解决你的问题,请参考以下文章

太酷了,Python 制作足球可视化图表 | 代码干货

4种Delphi IDE的调试时查看内存的方法,太酷了!

《笨办法学python》的后记,太酷了

用 Python 绘制动态可视化图表,太酷了

Python 文本终端 GUI 框架,太酷了

哇塞,这样的iPhone X太酷了!