荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Second (石开), 信区: Program
标  题: VC++菜鸟学习手记
发信站: 荔园晨风BBS站 (Wed Jun  6 07:13:30 2001), 转信


    说自己有好菜,可能还没有人相信,pp.boy只是稍稍懂点c语言,写过一些dos程序,对
于windows程序嘛,嘻嘻....了解的实在是太少了. 那为什么要选vc++呢?好象是在那本书
上看到过这样的话:业余的程序员用vb;聪明的程序员用delphi;真正的程序员用vc++. p
p从很早前就想成为一名程序员,又怪pp天生愚笨,想了好久还是就看上vc++了! 虽然听说
vc难了点,可pp是不畏惧这些的!....嘻嘻...又说了好多废话.

    pp可是做事情有三分的冲动的,刚刚加入C鸟帮,马上就真的干了起来,瞧..从大堆光
盘上找来了久违的Y版vc++光盘,迫不及待的就点了setup,...嘎吱...嘎吱..PP的3.2G的
硬盘又在叫嚣了,哎!找到工作就让你下岗!

    VC到是装好了,可要学习什么了?听说VC可以有很多用处的啊!见上连上qq向各位大哥
大嫂问了问,得知其中的MFC可算是VC的最大特点,也能轻车熟路...哈哈...看中你了!

    目标锁定!开始找资料!PP告诉大家一个的消息,自从前周被"程序员大本营2000"骗去
了半月生活费后PP的锅都不能揭了,哪里有钱买书啊!....只好连上网到什么yesky,vckb
ase也下了写东东...一个字...看!

    看了良久,PP也是个丈二和尚,干脆就听chache的教导来个实际的.实践实践.

    打开VC编辑器,呵呵还算是不陌生,和以前的tc的菜单都差不多,和interdev也很相试
,ok没有问题!打开FILE,在new选项卡上选projects毫不忧郁的用MFC APPWIZARD(EXE)就
新建了一个工程.看见屏幕的左边,出现了三个标签。InfoView / ClassView / FileVi
ew 。ClassView 标签列出了好多看不懂的类来,FileView 标签给出了项目中文件的列
表。看文件列表把PP下了一跳,有到几个文件,一个一个打开文件看看...O...我的天啦!
...大哥你在哪里?...怎么像main()或是winmain()的都看不到!怎么一回事.这个时候就
只有看当下来的电子图书了!书上说: "用VC++的MFC库编程与传统上使用 C 语言直接访
问 Windows API不同是 MFC 已经包含和压缩了所有标准的"样板文件"代码,这些代码是
所有用 C 编写的 Windows 程序所必需的." 嘻嘻...难道说MFC里面的"样板文件"里就包
含了winmain(),我们不需要在写这样的程序了?现在就姑且认为是吧.

    在看代码,发现好多从来都没有见过的标注,用msdn一个一个的查它是做什么的,搞了
半天,msdn和英文词典都被PP翻拦了也看不懂一二.哎!放弃这条路.

    再次连上QQ好容易找才了个好友给了段最简单的代码:

1 //hello.cpp
2 #include <afxwin.h>
3 // Declare the application class
4 class CHelloApp : public CWinApp
5 {
6     public:
7         virtual BOOL InitInstance();
8 };
9 // Create an instance of the application class
10 CHelloApp HelloApp;
11 // Declare the main window class
12 class CHelloWindow : public CFrameWnd
13 {
14     CStatic* cs;
15     public:
16     CHelloWindow();
17 };
18 // The InitInstance function is called each
19 // time the application first executes.
20 BOOL CHelloApp::InitInstance()
21 {
22     m_pMainWnd = new CHelloWindow();
23     m_pMainWnd->ShowWindow(m_nCmdShow);
24     m_pMainWnd->UpdateWindow();
25     return TRUE;
26 }
27 // The constructor for the window class
28 CHelloWindow::CHelloWindow()
29 {
30     // Create the window itself
31     Create(NULL,
32         "Hello World!",
33         WS_OVERLAPPEDWINDOW,
34         CRect(0,0,200,200));
35     // Create a static label
36     cs = new CStatic();
37     cs->Create("hello world",
38         WS_CHILD|WS_VISIBLE|SS_CENTER,
39         CRect(50,80,150,150),
40         this);
41 }

    嘻嘻....怎么像gwbasic一样有行好啊!..哦..原来是为了好看. 怎么又是一个hell
o world!这样的程序?

    官它3721啊!先把它编译连接运行后在说!再次打开VC编辑器,用new -> projects -
> win32 application 键一个空的工程(an emply project).ok! 存盘后有四个文件(HE
LLO.OPT、HELLO.NCB、HELLO.DSP 和 HELLO.DSW)这下好了文件比上次少了很多,连*.CP
P和*.HPP都没有! 分别打开这四个文件得知HELLO.DSW是这个工程的工程文件,其它文件
有什么用嘛?PP还不知道! 不管了!PP又打开"File"菜单中选择"New"建了一个文件名为h
ello.cpp的"Text File".然后将上面的这代码除开行号后粘贴了进去,然后就开始编译了
!PP的硬盘又好好的响了一阵,哎,看来PP的32M内存也该下课了!..开始连接了...哦..我
的天啦..怎么有好多错误,说是什么标识没有定义..怎么搞的????又只好问问在线的大哥
了..原来还没有告诉项目要使用MFC库。按照joker2000说的选择"Project"菜单的"Sett
ings"。在出现的对话框中选择"General"标签。在"Microsoft Foundation Classes"组
合框中,选择"Use MFC in a Shared DLL"后! 重新连接..good !..能够运行了...好有
成就感啊!PP还在沾沾自喜....旁边一个室友来了一句:这样的东西用VB就需要1分钟就搞
定!.....呼..气球破了..无语.这话没有错的.

    不管这样多走自己的路,让他们去说吧!接做就开始分析代码了:

2 #include <afxwin.h>
//包含头文件,这个知道,可afxwin.h是个什么东东呢?听说这是个历史遗留问题,现在也
难得官它只要知道用MFC时写进去就知道了,PP入门后在研究它不迟.
3 // Declare the application class
4 class CHelloApp : public CWinApp
5 {
6     public:
7         virtual BOOL InitInstance();
8 };
3-8 好象说明的标准应用程序类 CWinApp 继承出了新的应用程序类 CHelloApp。看了看
只是重载 CWinApp 中的 InitInstance 成员函数。InitInstance 是什么东西?打开msd
n..哦..原来这就是程序入口,像MAIN()一样。
再看:
20 BOOL CHelloApp::InitInstance()
21 {
22     m_pMainWnd = new CHelloWindow(); //创建了一个好象是窗口的类
23     m_pMainWnd->ShowWindow(m_nCmdShow);//这里看意思是要显示窗口了
24     m_pMainWnd->UpdateWindow();//可是这里为什么马上又要更新呢? 这是个问题
,QQ上没有人了.
25     return TRUE;
26 }
哎...36-40行是什么东东?
36     cs = new CStatic();
37     cs->Create("hello world",
38         WS_CHILD|WS_VISIBLE|SS_CENTER,
39         CRect(50,80,150,150),
40         this);

想想运行后的结果,窗口里有个像静太文本框的,可能就是在这里定义的.
看到这里已经不晚了PP今天也算是有收获.想想体会吧,感觉学习VC++不想学basic,asp,
c那样好上手没有,第一次浏览VC代码,很有些让人烦恼。半天找不到读破点,不知从哪里
开刀.另外,能有几个高手帮忙可以事半功倍. 是的PP是有信心学好VC的做一名真正的程
序员,也在这里向各位斑竹大佬尊敬,请以后多多指教!谢谢

--
                            既然热爱生命
                            那么,
                            一切都在意料之中。

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.190]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店