手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

初级 WINDOWS API C 语言版 编程

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

当我们使用着漂亮的界面,方便快捷的应用程式的时候。我们才会发现,以前曾编写的程式是多么的粗糙(TC编写的程式)。简单的界面,16色的显示系统,大大的落后于电脑的发展。简单的说就是杀鸡用牛刀。如何该改变这种情况呢?Microsoft公司在推出windows操作系统的时候给出了简单易行的解决方案。这就是WINDOWS平台API应用程式接口。当然API也是发展的,他从WIN 16 API发展到了现在普遍使用的WIN 32 API。只有充分理解API函数功能和用法,才能深入到WINDOWS系统的内部,才能充分挖掘出操作系统给我们提供的强大功能。现在就让我们放弃那DOS应用程式,进入WINDOWS编程的海洋之中吧。

要想了解WINDOWS API那么我们必须先了解WINDOWS下的程式是如何进行驱动的。同学们能够很清楚的发现到,当您在使用WINDOWS记事本的时候,当键盘输入字符的时候字就会出现在屏幕上。当您移动鼠标的时候,光标就会在屏幕上移动。双击鼠标、单击鼠标就会有相应的事件发生。这些都是由于WINDOWS具备的事件驱动的属性造成的。比如说当您按下键盘的字符键的时候,消息队列就会向程式发送WM_CHAR的消息,假如您所写的程式中含有处理这个消息的函数,程式就会执行他。

为了更好的了解WINDOWS编程,这里我必须介绍几个基本的概念:
1,句柄:他是WINDOWS编程的基础。一个句柄是指WINDOWS在内存中使用的一个唯一的整数质,是个4个字节长的数值,用于标识应用程式中不同对象和相同对象的不同实例。

这里我列出几种WINDOWS常用的句柄:

HWND: 标示窗口句柄
HINSTANCE:标示当前实例句柄
HCOURSOR:标示光标句柄
HFONT: 标示字体句柄
HPEN:标示画笔句柄
HBRUSH:标示画刷句柄
HDC:标示设备环境句柄
HBITMP:标示位图句柄
HICON:标示图标句柄
HMENU:标示菜单句柄
HFILE:标示文档句柄

由于WINDOWS应用程式利用WINDOWS消息来和其他的WINDOWS应用程式及WINDOWS系统进行消息交换。所以消息是个十分重要的对象他的结构如下。

typedef struct{
HWND hwnd; //检索消息的窗口句柄
UNIT message; //代表一个消息的消息质
WPARAM wParam; //消息附加信息的字参数
LPARAM lParam; //消息附加信息的长字参数
DWORD time; //消息入队时间
POINT pt; //消息发送时鼠标的位置 point.x;point.y;
} tagMSG;

2,消息:VC 中消息都用前缀标示消息所属的分类,下面我来介绍一下这些前缀

BM表示按钮控制消息
CB表示组合框控制消息
DM表示默认下压式按钮控制消息
EM表示编辑控制消息
LB表示列表框控制消息
SBM表示滚动条控制消息
WM表示窗口消息

现在我来对系统常用的一些消息进行说明:
1,WM_LBUTTONDOWN: 单击鼠标左键时产生
2,WM_LBUTTONUP: 放开鼠标左键时产生
3,WM_RBUTTONUP: 放开鼠标右键时产生
4,WM_LBUTTONBLCLK: 双击鼠标左键时产生
5,WM_RBUTTONBLCLK: 双击鼠标右键时产生
6,WM_KEYDOWN: 按下了一个非系统键时产生的消息
7,WM_CHAR: 同上
8,WM_CREATE: 由CreateWindow函数发出的消息
9,WM_DESTROY: 消除窗口时发出的消息
10,WM_QUIT: 退出程式时发送的消息
11,WM_PAINT: 做任何移动操作时发出的消息

介绍了以上的这些基础入门知识,我们就能够简单的了解一下WINDOWS API 程式的组成基本结构。他是由入口函数WinMain和窗口函数基本框架,并包含各种数据类型、数据结构和函数等应用组建组成的。其中入口函数WinMain和窗口函数是WINDOWS应用程式的主体。

一个基本的WinMain函数应该具备以下的功能:
1,注册窗口类,建立窗口及执行其他必要的初始化工作
2,进入消息循环,根据从应用程式消息队列接受的消息,调用相应的处理过程。
3,当消息循环检索到WM_QUIT消息时中止程式运行
WinMain函数有三个基本组成部分:函数说明、初始化和消息循环。

(1)函数说明

int WINAPI WinMain
(
HINSTANCE hThisInst, //应用程式当前实例句柄
HINSTANCE hPrevInst, //应用程式其他实例句柄
LPSTR lpszCmdLine, //指向程式命令行参数的指针
int nCmdShow //应用程式开始执行时窗口显示方式的整数值标示
)

(2)初始化
初始化包括窗口类的定义、注册、创建窗口实例和显示窗口四部分。(在以后的程式中我将周详的介绍他们具体的实现方法)

(3)消息循环
WINDOWS应用程式的运行是以消息为核心的。WINDOWS将产生的消息放入应用程式的消息队列中,而应用程式的WinMain函数从消息循环提取队列中的消息,并将其传递给窗口函数的相应过程处理。

他的基本写法如下:

MSG Meg;//定义消息
//(...)省略了一些内容
while (GetMessage(&Meg,NULL,0,0)
{
TranslanteMessage(&Meg);
DispatchMessage(&Meg);
}



[1] [2] [3] 下一页

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS