分享
 
 
 

Win32学习笔记 第一章 开始

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Win32学习笔记

作者: 姜学哲(netsail0@163.net)

教材: Windows程序设计(第五版)北京大学出版社

[美]Charles Petzold 著

北京博彦科技发展有限公司 译 ¥:160

参考资料:

Windows 应用程序设计原理_方法_技术(因为是PDF格式的EBOOK,作者等不详)

新编Windows API 参考大全 电子工业出版社 ¥:98

C++ Primer(第三版)中国电力出版社 Stanley B.Lippman & Josee Lajoie 著 潘爱民 张丽 译 ¥:128

TURBO C实用大全 徐金梧 杨德斌 徐科 编 ¥:42

环境: windows2000 server + Internet Explorer 6.0 + DirectX7.0 + Visual C++ 6.0

图们江计算机程序编制小组(chulsoft.xiloo.com)版权所有,转载请说明出处

------------------------------------------------------------------

【第一章 开始】

爽完了"星际争霸"后不禁有些遗憾。如果星际的地图再大一点,人口限制再多一点就好了。地图尺寸应该是8人地图的81倍,人口应该是6000。目前来说这是不可能的事情。没有任何一台机子能承受得了。我是想指挥一场真正的战争。就像想当年刘邓大军和国民党军打仗一样。其实星际已经很优秀了,我不能再要求什么。

说到这里,我想到了我们最常用的操作系统Windows系列。我去过很多论坛,包括Linux论坛在内,绝大多数网友们非常喜欢骂微软公司和该公司的所有产品。以前我也骂过,后来意识到了自己的错误后,再也不骂了。有很多人用着盗版的WINDOWS和IE上网骂微软。有种的用LINUX上网骂微软行不?要不买个正版再骂也可以呀。

我最喜欢的公司是微软。因为在微软程序员的地位是非常高的,特别是总部。微软是两个天才程序员创建的。向往程序员的我没有理由不喜欢微软。

给微软拍了这么多的马屁,怎么能不懂WINDOWS系统呢?所以我要学习WIN32。彻底了解微软公司的产品。

学习WIN32,也就是读Windows程序设计(第五版)要有三个先决条件。

首先我们应该从用户的角度熟悉WINDOWS系统。意思是说会使用WINDOWS。我想这一点很多人都能做到。

第二,应该了解C语言。为什么?WINDOWS是用C写的,书中是用C语言讲解的,这就是原因。当然如果您愿意,也可以用Pascal写。不过您得找另一本书了。书名应该是Windows程序设计(Pascal版)。

第三,应该有一个Visual C++ 6.0。我也不指望您用的是正版。一万多RMB,比我的电脑还贵。

书上说,我们可以没有任何图形用户界面的编程经验。very good!

微软出版的书嘛,当然免不了大大地夸耀一下辉煌的历史了。

下面来看一看WIN32版的"Hello World",哦,对不起!应该是"Hello Windows98!"才对。

#include<windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)

{

MessageBox(NULL, TEXT("Hello, Windows98!"), TEXT("HelloMsg"), 0);

return 0;

}

C语言中入口应该是main(),但是到了WIN32就变了,WinMain()代替了main()。对于从来没有接触过WIN32的初学者来讲,上面的程序可能会使您一头雾水。

MessageBox()是对话框函数。是Windows系统提供的。这就是传说中的Windows API(应用程序接口)。函数功能是显示一个对话框。对话框所显示的内容就是第二个参数TEXT(Hello, Windows98!)。第三个参数中的字符串会出现在标题栏中。

有关TEXT(),这是一个宏定义,也就是用define定义的。这是为了兼容UNICODE字符集而做的改动。以后不管是什么时候,您最好把字符串都用TEXT()括起来,有关UNICODE,那是第二章的问题,所以在第一章这个问题根本就不成为问题。

头文件windows.h中包含了其它的头文件,这些头文件中的一部分又包含了另外的一些头文件。

◆WINDEF.H

◆WINNT.H

◆WINBASE.H

◆WINUSER.H

◆WINGDI.H

这些头文件定义了Windows的所有数据类型,函数调用,数据结构和常数标识符。

WinMain()前面的WINAPI在WINDEF.H中定义如下:

#define WINAPI __stdcall

具体的含义我不知道。可能后面会有详细讲解吧。

#define MB_OK 0x00000000L

#define MB_OKCANCEL 0x00000001L

#define MB_ABORTRETRYIGNORE 0x00000002L

#define MB_YESNOCANCEL 0x00000003L

#define MB_YESNO 0x00000004L

#define MB_RETRYCANCEL 0x00000005L

上面的是MessageBox()的第四个参数选项。想了解他们的具体含义很简单。上面的HelloMsg程序中MessageBox()的第四个参数是零,您可以把那个零换成上面六个常量中的一个,比如:

MessageBox(NULL, TEXT("Hello Windows98!"), TEXT("HelloMsg"), MB_OKCANCEL);

重新编译后您会发现对话框中多了一个'取消'按钮。如果您使用的是英文版,两个按钮分别是 OK & CANCEL。您可以一个一个的试。

#define MB_ICONHAND 0x00000010L

#define MB_ICONQUESTION 0x00000020L

#define MB_ICONEXCLAMATION 0x00000030L

#define MB_ICONASTERISK 0x00000040L

这些都是对话框中的图标选项。可以用C语言中“|”运算符与前面所提到的六个选项中的一个结合起来,比如:

MessageBox(NULL, TEXT("Hello Windows98!"), TEXT("HelloMsg"), MB_OKCANCEL | MB_ICONHAND);

运行上面的程序后您将会看到原先的对话框中多出了一个红色的图标,那是一个表示出错时用的“叉叉”,这个图标我不喜欢,我比较喜欢感叹号,所以把程序改成:

MessageBox(NULL, TEXT("Hello Windows98!"), TEXT("HelloMsg"), MB_OKCANCEL | MB_ICONASTERISK);

运行后您可以非常Lucky地看到对话框中出现了一个白底蓝字的感叹号。

就这样,第一章的内容算是学完了。是不是有股非常非常强烈的,想要写应用软件的冲动?不要着急,慢慢来。下一章简单了解一下Unicode。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有