//原文链接:http://blog.csdn.net/it1988888

故事发生在很久很多久以前,有一只菜菜鸟,领略到Windows系统及其应用软件的强大,令其折服,遂生自行编写软件的念头。

网上很多VC相关的教程,但总结起来,大多数都使用MFC,虽然听说它的自动化程度令人痴迷,但亦有专家说只懂使用MFC编程,不算真正懂编程。

那么,真正的编程是什么样子呢?

从C语言来看,我理解的编程是调用现成的库函数,或者自行编程创造函数以供调用。

曾经也想学MFC,下了决心,然后看过几次程序,但实在看不下去了,在电脑里听讲师授课,胜似催眠术,于是乎几次都是昏昏欲睡之。

我是学C编程开始的,然后学了单片机、嵌入式系统,长期以来养成的坏习惯就是,喜欢自己鼓捣程序,不喜欢拿别人的程序来抄,总觉得看不进去,就像一架神舟飞船在你面前,但是你却无法解读它,毕竟,这是人家已经装配好的东西,程序亦如此,这是人家整编好的程序,一旦把一个庞大的别人完成的程序放在我面前,我就懒得花心思去深入研究了,总觉得程序量一旦达到一定的量,你光看程序根本很难了解作者如此设计程序的思路,或者说是方法、目的。好吧,MFC也是这样的道理,微软公司把API整编好了,然后,你想要什么东西,就告诉它,它就像KFC一样,只要你下订单,它给你一个丰盛的早餐了,但是你永远学不会自己做早餐。

言归正传,讲VC菜菜鸟的第一课吧,创建一个窗口,就是一个软件的界面,相当于经典的"Hello, world!"吧。效果图如下:

-打开图(1)-

开发环境:C-Free,version:5.0;

系统环境:Windows XP;

开发的具体流程,如下:

1,从C-Free中新建一个空的窗口工程;

注意:C-Free 5 使用"mingw5"构建配置,如使用"mingw3.4.5"似乎有问题,编译不成功。

2,创建main.cpp文件,并增加至工程之中,内容如下:

#include "windows.h"
#include "Dialogs.H"

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    DialogBox(hInstance, MAKEINTRESOURCE(IDD_FORM), NULL, NULL);
    return(0);
}

3,打开菜单“工具”->“对话框编辑器”,打开"File"菜单->"New",新建一个对话框窗口。

然后,需要给窗口取一个ID识别号,如果不取,则不能自动生成"Dialog.h"头文件。当然,命名规则的话,窗口类的识别ID一般以"IDD_"开头。按之前编写的main.cpp文件的要求,对话框的识别号为IDD_FORM。

接着,直接保存,就提示保存一个"Dialog.h"头文件,和一个"Dialogs.DRES"对话框资源文件。

最后,把这个步骤生成的两个文件,都包含进工程。

窗口就已经设计好了,接下来就可以调用并显示窗口了。

4,接下来,可以编译并运行,看一下效果。

结果是,编译通过了,提示程序不存在错误,但是窗口没有如期被调用并显示出来。这是为什么呢?

5,想要调用并显示出之前建立的对话框,需要进行如下操作:

新建一个文件,文件名与工程名相同,后缀为.rc,并添加进工程中,文件内容如下:

#include "Dialogs.DLG"

6,现在编译运行一下吧,我们那个可爱的窗口,煞是可爱的显示在电脑上了,如图(1)所示。^_^=|==|~

课后探讨:为什么要加入"工程名.rc",并写入"#include Dialog.DLG",才能正确编译并显示对话框呢?

-欲知后事如何,且听下回分解-

转载于:https://www.cnblogs.com/techstone/archive/2012/06/15/3321365.html

VC菜菜鸟:基于CFree的HelloWorld程序相关推荐

  1. 最简单的基于FFMPEG的Helloworld程序

    学习雷神的FFMPEG入门教程,本文基于命令行实现. 文件结构 G:\Coding\FFMpeg\Proj\Console>dir驱动器 G 中的卷没有标签.卷的序列号是 0FD5-0CC8G: ...

  2. VC菜菜鸟-创建一个即时串口通信程序

    //编者注:串口接收基于多线程任务. #include <windows.h> #include <windowsx.h> #include "main.h" ...

  3. VC菜菜鸟-创建一个简单的多线程任务

    在学习编程的过程中,经典的"HelloWorld"给我最大的启示就是,一切从简,简而明理. 写一个连"白痴"都看得懂的代码,是编程的最高境界. 想要学一个知识点 ...

  4. 用vc对oracle数据库编程,用VC开发基于ORACLE数据库应用程序

    用VC开发基于ORACLE数据库应用程序 徐智文 [期刊名称]<包钢科技> [年(卷),期]2006(032)001 [摘要]VC++是一个强大的客户端开发工具,可以很方便地开发出基于PR ...

  5. 鸿蒙基于JS搭建HelloWorld并修改国际化文件

    场景 鸿蒙HarmonyOS环境搭建与HelloWrold应用运行: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1179945 ...

  6. java jni helloword_JNI学习一:编写HelloWorld程序

    转载请说明出处~ 本文教程翻译jni官方文档的部分内容. 要查看Jni官方文档,请点击这里 先感叹一下时光如水,岁月不留人哇有木有!!!认真想想在XMU的这三年,真的改变了我好多. 我还清楚地记得学习 ...

  7. 在VC中使用ADO开发数据库应用程序

    在VC中使用ADO开发数据库应用程序 一.ADO概述 ADO是Microsoft为最新和最强大的数据访问范例 OLE DB 而设计的,是一个便于使用的应用程序层接口.ADO 使您能够编写应用程序以通过 ...

  8. 用python写helloworld_Python基于Tkinter的HelloWorld入门实例

    Python基于Tkinter的HelloWorld入门实例 本文实例讲述了Python基于Tkinter的HelloWorld入门实例.分享给大家供大家参考.具体分析如下: 初学Python,打算做 ...

  9. Node.js入门以及第一个helloworld程序.

    1.概念:简单的说 Node.js 就是运行在服务端的 JavaScript.学之前需要明白Node.js是无法挑战jsp.php或者asp这种老牌网站的地位的,是永远不会出现在证券.金融这种领域的. ...

最新文章

  1. xp大容量u盘补丁_Win XP系统下载与安装(U盘)
  2. SpringBoot+Docker+Git+Jenkins实现简易的持续集成和持续部署
  3. 链表问题10——两个单链表生成相加链表(方法二)
  4. 十年Java编程开发生涯,java计算时间差毫秒
  5. 新站SEO优化如何吸引搜索引擎蜘蛛的爬行?
  6. php cli模式下获取参数的方法
  7. 洛谷P3694 邦邦的大合唱
  8. hibernate+mysql保存中文数据乱码问题
  9. 网络调试指令ping、telnet、curl
  10. OpenCV equalizeHist直方图均衡化的实例(附完整代码)
  11. 机器学习笔记网盘分享
  12. Django权限管理测试
  13. 【背包问题】基于matlab粒子群算法求解背包问题【含Matlab源码 1343期】
  14. 2016年第四届C/C++ A组蓝桥杯省赛真题
  15. 【转】plt.plot的颜色
  16. 连续子串最大和——python实现
  17. 设计院总工毕生总结的200条经验
  18. vue自定义弹窗dialog,vue 点击遮罩层功能区以外的地方关闭遮罩层
  19. ES6箭头函数以及promise/async/await测试案例
  20. Python 鸭子类型的理解

热门文章

  1. SQL Server数据库开发的二十一条军规
  2. android进度条课设报告,Android开发之进度条ProgressBar的示例代码
  3. mysql数据库安全配置规范_MySQL数据库安全配置规范操作
  4. 【IM】关于迁移学习的理解
  5. 【数据平台】Python解析Ngnix日志
  6. 【知识发现】天池平台新浪微博互动预测-ItemCF推荐方法
  7. “池哥昼”的一件趣事
  8. 数据结构源码笔记(C语言):哈夫曼树
  9. 异步任务AsyncTask
  10. VS.NET中的生成解决方案和重新生成解决方案有什么区别?