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

2016-02-19 15:18 1 1 收藏

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享初级 Windows API C++语言版 编程(3),希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

【 tulaoshi.com - 编程语言 】

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

  一个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 创建一个带最小化按钮的窗口

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

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

  WS_POPUP 创建一弹出式窗口

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

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

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

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

  ④显示窗口

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

  BOOL ShowWindow(hwnd,nCmdShow)

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

  nCmdShow共有六个可选值

  标识 说明

  SW_HIDE 隐藏窗口

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  SW_SHOWNORMAL 显示并激活窗口

  SW_SHOWMINIMIZE 显示并最小化窗口

  SW_SHOWMAXIMIZE 显示并最大化窗口

  SW_SHOWNOACTIVE 显示但不激活窗口

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

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

  BOOL UpdataWindow(hwnd);

  //hwnd为窗口句柄

来源:http://www.tulaoshi.com/n/20160219/1609324.html

延伸阅读
C++语言是一个面向对象的语言,使用C++编写的代码更加简捷、高效,更具可维护性和可重用性。但是很多人使用了C++语言后却感到C++与C编程没有什么区别。这其实是由于对C++语言的特点和特色理解和使用不够造成的。事实上,没有任何一个程序员使用C语言的编程效率可以超过C++语言的。 一、使用new和delete进行动态内存分配和释放 ...
我们创建的第一个类是Shape。这是一个抽象类,因为我们不想创建这个类的实例,我们要创建的是它的派生类的实例。我们从所有的形状(圆、长方形、正方形)提取出共同特征到Shape类。Shape类有一个实例变量color,它的变量声明中带有protected修饰符。protected修饰符表示这个变量只能在类的内部或者该类的派生类中访问。紧接这个变量声明的就是Sh...
导读 C#是Microsoft开发的一种新语言,它和C/C++一样强大,和Java一样提供丰富的网络编程支持和自动内存管理,和VB一样简单易用。本文的目的是为尚未接触过C#的程序员介绍这种编程语言,是一个基础的入门教程。 作者:仙人掌工作室 2001-02-20 原文出处:http://journal.iftech.com/articles/0011_joey_CSharp/ C#读作“C ...
下面这个例子示范如何创建和使用用户定义的类以及如何创建动态链接库。利用文本编辑器创建两个文件。第一个是Apple.cs,内容如下: public class Apple { private string variety = ""; public Apple(string appleVariety) { this.variety = appleVariety; } public void outputVariety() { System.Console.WriteLine(variety); } } ...
if语句 if语句用于测试条件并在条件为真时执行一桌或几条语句。 说明:if表达式后面不能带分号,否则它本身表示代码中的空语句,使编译器将空语句解释为在条件为真时执行的语句。 if (x == 10); // Warning! Extra semicolon! DoSomething(x); 这里DoSomething()函数总会执行,因为编译器不把它看成在条件为真时执行...

经验教程

401

收藏

42
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部