窗口与winmain-win32与C++入门笔记(2)

来源:互联网 发布:java源代码文件调试 编辑:程序博客网 时间:2024/05/19 15:24

Learn to Program for Windows in C++

windows

窗口

我们所看见的窗口 是application windows,有标题栏,标题栏上有最大最小化按钮,还有一些其他的组件。这些区域称为 non-client area
取自msdn
而中间的那部分称为client area

还有单个组件的窗口比如就一个按钮。

窗口特征

对于一般的window我们应该将其视为一种编程结构
有如下特征

  1. 在显示器上占有一定空间
  2. 在某一时刻可能没有显示
  3. 画出自己的能力
  4. 能对来自系统或用户的时间做出响应

窗口关系

窗口之间有两种关系

  1. parent/child
  2. owner/owned

第一种关系,比如窗口上有一个button,他们的关系就是这样的。
parent为child 提供位置坐标系,child显示不能超出parent组件范围。

第二种关系,就是窗口与他的模态对话框关系。

Window Handles

windows不是C++类,系统想要标识索引它,就需要handles这种结构。
可以把他想象成,所有windows都放在一个表中,而他就是这个表的索引。
windows句柄结构类型是 HWND

CreateWindowEx.

返回的就是HWND。
执行一些需要操作窗口的函数往往都需要这个参数。

winmain

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow);

入口函数,就像main函数一样,这是windows桌面应用程序的入口函数。
第一个参数可以理解为“handle to an instance”,handle是用来标识的意思,他是用于操作系统标志识别这个执行程序。
第二个参数是16位应用程序使用的,现在不用为0
第三个是控制台参数的unicode表示。
第四个是标志位,主要控制窗口属性如是否可以最大最小化。

这个函数有一个整形的返回值,这个一般不像控制台应用那样传给操作系统程序执行完成状态,而是传递给其他应用程序的状态码。

WINAPI主要是对函数调用的一些约定,比如参数从左还是从右入栈。
入口函数为什么是winmain,这个是由Microsoft C runtime library (CRT)决定的,事先做了一些事情。

0 0
原创粉丝点击