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

2016-02-19 15:18 0 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 为系统提供的背景刷标示名

  ②注册窗口类

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

  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 创建一个带边框和标题栏的窗口

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

  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 隐藏窗口

  SW_SHOWNORMAL 显示并激活窗口

  SW_SHOWMINIMIZE 显示并最小化窗口

  SW_SHOWMAXIMIZE 显示并最大化窗口

  SW_SHOWNOACTIVE 显示但不激活窗口

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

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

  BOOL UpdataWindow(hwnd);

  //hwnd为窗口句柄

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

延伸阅读
C++语言是一个面向对象的语言,使用C++编写的代码更加简捷、高效,更具可维护性和可重用性。但是很多人使用了C++语言后却感到C++与C编程没有什么区别。这其实是由于对C++语言的特点和特色理解和使用不够造成的。事实上,没有任何一个程序员使用C语言的编程效率可以超过C++语言的。 一、使用new和delete进行动态内存分配和释放 ...
(1)“我的程序都是对的,可结果不对” 想想你的四周,是不是也有人说这样的话?假如你也曾经说过,那就此打住,不要再说这句话,因为这句话只会显示说话者的无知。既然程序都是对的,那为什么结果不对? (2)“程序=算法+数据结构” 假如刚刚学完C语言,我们说这样的话,完全可以理解,而且可以说是正确的。但是假如你是一位即将...
1.引言 !-- frame contents -- !-- /frame contents -- 还记得当年学数学、英语都有个窍门,那就是搞个错题集。经常复习一下这个错题集,就可以避免下次犯同样的错误。而几乎所有的程序员都是从犯错误开始的,我们也很有必要总结一下编程新手的常见错误,本文的目的在于此。文中所列出的都是笔者在项目开发中接...
入门简介 变量 C++数据类型 C++操作符 C++中的函数 main函数 数组 字符串数组 字符串操作函数 C++是个强大的语言,可以用于做别的语言做不了的工作。但是,这种强大功能是有代价的。开始使用C++时,你可能会遇到内存溢出和访问失效等问题,使程序死机。这里用最简短的篇幅介绍C++语言基础。C++语言本身有专著介绍,这种书...
本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。 笔试时间90分钟。请考生认真答题,切勿轻视。 一、请填写BOOL , float, 指针变量 与零值比较的 if 语句。(10分) ...

经验教程

801

收藏

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