分享
 
 
 

初级 Windows API C++语言版 编程(3)

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

由于上一章的文章中我没有向大家介绍清楚初试化的具体实现,造成很多的读者无法很好的理解,这是我的失误。本人现在补上,请大家原谅。

一个Windows API程序的初始化主要分为为四个部分。1、窗口类的定义2、窗口类的注册3、创建窗口实例4、显示窗口

①窗口类定义

在Windows应用程序中,窗口类定义了窗口的形式与功能。它的定义过程通过给窗口类数据结构WNDCLASS赋值来完成,这个数据结构包含窗口类的各个属性。窗口类的定义常用到以下几个函数,在这里一一介绍。

1、LoadIcon函数

LoadIcon函数的作用是在应用程序中加载一个窗口图标。它的原型为:

HICON LoadIcon

(

HINSTANCE hInstance, //图标资源所在的模块句柄;

//假如使用NULL,就会使用系统预定义的图标

LPCTSTR lpIconName //图标资源名或系统预定义的图标标识名

)

2、LoadCursor函数

LoadCursor函数作用是在应用程序中加载一个窗口光标。它的原型为:

HCURSOR LoadCursor

(

HINSTANCE hInstance,//光标资源所在的模块句柄;

//假如使用NULL,它就会使用系统预定义的光标

LPCTSTR lpCursorName//图标资源名或系统预定义的光标标识名

)

3、GetStockObject函数

应用程序通过调用GetStockObject函数来获取系统提供的背景刷,它的原型为:

HBRUSH GetStockObject(int nBrush);

//nBrush 为系统提供的背景刷标示名

②注册窗口类

Windows系统本身提供部分预定义的窗口类,我们也可以自己定义窗口类,窗口类必须先注册后使用。窗口类注册使用的函数是RegisterClass()实现。它的原型为:

RegisterClass(&wndclass);

//wndclass为窗口的类结构(前面第二篇文章已经介绍过了)

③创建窗口

窗口注册之后就要把它实例化,简单的说就是创建一个窗口的实例。它是由函数CreateWindow()实现,函数的原型为:

HWND CreateWindow

(

LPCTSTR lpszClassName,//窗口实例的类的名字

LPCTSTR lpszTitle, //窗口标题名

DWord dwStyle,//新创建的窗口的样式(后面将会具体介绍)

int x,//窗口左上角的横坐标

int y,//窗口左上角的纵坐标

int nWidth, //窗口的宽度

int nHeight, //窗口的高度

HWND hwndParent, //该窗口的父窗口的句柄

HMENU hMenu,//窗口主菜单句柄

HINSTANCE hInstance,//创建窗口的应用程序当前句柄

LPVOID lpParam //指向一个传递给窗口的参数值的指针

)

那么窗口的样式有哪些呢?

标识 说明

WS_BORDER 创建一般带边框的窗口

WS_CAPTION 创建一个带标题栏的窗口

WS_HSCROLL 创建一个带水平滚动条的窗口

WS_MAXIMIZEBOX 创建一个带最大化按钮的窗口

WS_MINIMIZEBOX 创建一个带最小化按钮的窗口

WS_OVERLAPPED 创建一个带边框和标题栏的窗口

WS_OVERLAPPEDWINDOW 创建一个带边框、标题栏、系统菜单及最大化、最小化按钮的窗口

WS_POPUP 创建一弹出式窗口

WS_POPUPWINDOW 创建一带边框和系统菜单的弹出式窗口

WS_SYSMENU 创建一带系统菜单的窗口

WS_VSCROLL 创建一带垂直滚动条的窗口

当然为了实现具有多种风格的窗口,WINAPI提供了“”来表示并(∪)的意思。例如我们要实现一个即具有垂直滚动条又具有水平滚动条的弹出式窗口时可以输入:WS_BSCOLLWS_VSCROLLWM_POPUP

④显示窗口

以上的操作均由函数实现,显示窗口当然也不例外。窗口类的显示由ShowWindow和UpdateWindow函数实现。应用程序调用ShowWindow函数在屏幕上显示窗口,其形式为:

BOOL ShowWindow(hwnd,nCmdShow)

//其中hwnd为窗口句柄,nCmdShow为窗口显示形式标识

nCmdShow共有六个可选值

标识 说明

SW_HIDE 隐藏窗口

SW_SHOWNORMAL 显示并激活窗口

SW_SHOWMINIMIZE 显示并最小化窗口

SW_SHOWMAXIMIZE 显示并最大化窗口

SW_SHOWNOACTIVE 显示但不激活窗口

SW_RESTORE 恢复窗口原来的位置及尺寸

在窗口显示之后,应用程序应使用UpdateWindow函数更新并绘制用户区,并发出WM_PAINT消息。它的形式为:

BOOL UpdataWindow(hwnd);

//hwnd为窗口句柄

(未完待续)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有