【win32】vs2010的窗体程序Helloworld
来源:互联网 发布:mac 查看安装路径 编辑:程序博客网 时间:2024/06/08 18:25
本来,mfc都已经是很落后的东西,现在写窗体都用C#,提到vs的窗体大家都想到c#。虽然如此,但本来了解Windows窗体的编程机制,同时又本着vc6可以实现的东西,vs都可以实现而且更进步的理念,同时市面上大部分介绍win32窗体C++编程的书籍都是以VC6为版本的,所以开倒车也要在VS中实现win32窗体程序的了。
具体这样做:
1、打开VS2010,废话,如下图,创建一个win32窗体程序。
2、点下一步,直接默认设置点完成,创建一个Windows应用程序
3、可以直接编译,运行了,但是生成出来的东西并不能让我们满意,如下图所示,有一个我们并不需要出现的菜单栏,我们还想在窗体中输出一个Helloworld。
或许此刻,你觉得VC6没有这么乱吧,或者认为VC6和VS2010差别很大?按照部分书上所示,在创建工程选择第3项,编译运行一劳永逸?
但其实并不是,在VC6同样如此的。而且你还可以发现,其实VC6那些文件和这里VS2010文件也是差不多的。
实际上VS2010只是放了些兼容性文件上去而已。来来去去还是那一套,绘出一个窗体,然后在这个窗体有一个函数在不停地循环,就是为了读鼠标或者键盘的响应信息。然后这些信息统统扔到LRESULT CALLBACK WndProc这个消息回调函数里面,你要弄什么就在这个函数里面写吧。
就是个框架,没有什么技术含量,和你改java web什么的,改win32窗体独有的程序框架里面的东西,在里面加你自己的东西就行了。
好,说了这么多,到底怎么完成我们去掉菜单栏和输出一个Helloworld文件的梦想呢?
4、直接对Win_Helloworld.cpp(文件名根据你第一步的工程名不同而不同)这个主cpp入手,进行修改。
(1)去掉菜单栏,对ATOM MyRegisterClass(HINSTANCE hInstance)函数,整个程序的第87行入手,如下图修改,将其值换成NULL。
同时注释或者删去142-158行消息回调函数中关于菜单栏单机处理的case WM_COMMAND事件。
172-190行一大段关于“关于”对话框的函数。
(2)输出Helloworld
接下我们需要对消息回调函数中的case WM_PAINT:这个所谓的“重绘事件”进行入手,就是你每次移动、最大化这个窗口,这个事件都会被触发的,窗体会被重绘,人家vs2010也非常好心你就是应该在这里开始你的win32窗体程序的旅程,将case WM_PAINT:修改成如下所示,其实就是加了SetTextColor和TextOut两个函数而已:
即:你可以将这个hdc,理解成在这个窗体画东西的画笔。然后呢,各个函数基本都是名副其实了,值得提醒在TextOut函数中,不像VC6,在VS2010中,所有那些LPCTSTR,不能直接放个字符串上去,要在前面加个大写L,强行转化一下。将一个普通字符串转化为 系统中的窗体字符(大概就是这个意思)。所以你就知道C++各种各样的变量是多么蛋疼,php等无变量类型的设计是多么伟大。
写到这里就写完了,运行结果如下图所示:
最后,做个小终结吧。
写C++的Win32窗体程序,别拿以前C语言那种,从0开始的思维往上面套。就是系统已经给你一个框架,你按照他的要求在这个框架上面改。
起步的时候,并不需要对这个框架有多熟悉,先从这个框架的一些基本东西入手,实现一些最基本的功能。
程序猿出来混也基本上是如此,很少让你拿一门语言从0开始的,基本上都是在框架中修修补补,创造。
或者在了解Win32窗体程序的同时,Win32最基本的WIN API同时,能提高一下自己面对框架的能力。
- 【win32】vs2010的窗体程序Helloworld
- 【win32】vs2010的窗体程序Helloworld
- VS2010 win32项目windows窗体程序 向导生成代码解析
- Win32 创建窗体程序
- Win32创建窗体程序
- cocos2d-x的Helloworld程序运行流程(win32)
- WIN32基本窗体程序框架
- VS2010建Win32 API程序
- vs2010 win32程序中 sqlserver 2008 express的简单使用
- 【win32】Helloworld
- C#程序在VS2010中复制窗体
- VS2010+OSG3.2+CEGUI 0.8.4环境下实现简单的HelloWorld程序
- 我的第一个win32 helloworld
- PacMan开发-Win32的"HelloWorld"&WinMain()函数
- PacMan开发-Win32的"HelloWorld"&MyRegisterClass()函数
- VC++/VS2010 Win32控制台程序 运行结束 DOS/dos窗口立刻消失/一闪而过 的解决方法整理
- 关于,VS2010 里面 一个解决方案包含多个win32程序,调试的问题~~~happy
- VC++/VS2010 Win32控制台程序 运行结束 DOS/dos窗口立刻消失/一闪而过 的解决方法整理
- JSP img元素无法显示本地图片的问题(一)
- MyEclipse2017破解教程
- 网络基础常考面试题
- 基数排序
- 洛谷p1880石子合并
- 【win32】vs2010的窗体程序Helloworld
- Spring配置数据库连接池错误(特别注意)
- mysql5.5编译安装
- 利用Flask-AppBuilder 快速构建Web后台管理应用
- linux 配置DNS服务器
- 步进电机脱机状态实质
- 【PAT】【Advanced Level】1075. PAT Judge (25)
- python os.path模块
- poj2236(并查集)