编写窗口程序的步骤:
.定义WinMain入口函数
.定义窗口处理函数(处理消息)WindowProc
.注册窗口类RegisterClass
.创建窗口(在内存中创建窗口)CreateWindow
.显示窗口(根据内存的数据将窗口绘制出来)ShowWindow/UpdateWindow
.消息循环(提取、翻译、派发消息)GetMessage,TranslateMessage,DisptachMessage
.消息处理
窗口类
窗口类包含了窗口的各种参数信息的数据结构。每个窗口都具有窗口类,基于窗口类创建窗口。每个窗口类都具有一个名称,使用前必须注册到系统。
窗口类的分类
--系统窗口类
系统已经定义好的窗口类,所有应用程序都可以直接使用。
--应用程序全局窗口类
由用户自己定义,当前应用程序所有模块都可以使用。
--应用程序局部窗口类(推荐使用)
由用户自己定义,当前应用程序中本模块可以使用。
ATOM RegisterClass(
const WNDCLASS *lpWndClass//窗口类数据
);注册成功后,返回一个数字标识。
ATOM RegisterClassEx(
const WNDCLASSEX *lpwcx//窗口类数据(数据类型和RegisterClass不同)
);
typedef struct _WNDCLASSEX
{
UNIT cbSize;//结构体的大小
UINT style;//窗口类的风格
WNDPROC lpfnWndProc;//窗口处理函数
int cbClsExtra;//窗口类的附加数据buffer的大小
int cbWndExtra;//窗口的附加数据buffer的大小
HINSTANCE hInstance;//当前模块的实例句柄
HICON hIcon;//窗口图标句柄--窗口任务栏图标
HCURSOR hCursor;//鼠标的句柄
HBRUSH hbrBackground;//绘制窗口背景的画刷句柄
LPCTSTR lpszMenuName;//窗口菜单的资源ID字符串
LPCTSTR lpszClassName;//窗口类的名称
HICON hIconSm;//窗口的小图标句柄--窗口左上角图标
}WNDCLASSEX;
应用程序全局窗口类的注册,需要在窗口类的风格中增加CS_GLOBALCLASS,
例如:WNDCLASSEX wce={};wce.style=CS_GLOBALCLASS;
应用程序局部窗口类
再注册窗口类时,不添加CS_GLOBALCLASS风格。

Windoows窗口程序一的更多相关文章

  1. Windoows窗口程序五

    程序执行机制 过程驱动-程序的执行过程是按照预订好的顺序执行. 事件驱动-程序的执行是无序,用户可以根据需要随机触发相应的事件. Win32窗口程序就是采用事件驱动方式执行,也就是消息机制. 当系统通 ...

  2. Windoows窗口程序二

    WNDCLASS属性style取值: CS_GLOBALCLASS--应用程序全局窗口类 CS_BYTEALIGNCLIENT--窗口客户区的水平位置8倍数对齐 CS_BYTEALIGNWINDOW- ...

  3. Windoows窗口程序七

    WM_QUIT--用于结束消息循环处理 wParam - PostQuitMessage函数传递的参数 lParam - 不使用 当GetMessage收到这个消息后,会返回false,结束while ...

  4. Windoows窗口程序六

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <stri ...

  5. Windoows窗口程序四

    子窗口的创建 .创建时要设置父窗口句柄 .创建风格要增加WS_CHILD|WS_VISIBLE HWND CreateChild(LPSTR lpClassName,LPSTR lpWndName,H ...

  6. Windoows窗口程序三

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h& ...

  7. Cocos2dx集成于windows桌面窗口程序的步骤

    2D游戏需要做编辑器,而编辑器总是希望可以复用游戏中的逻辑来运行场景试看效果. 对于cocos2dx开发的程序,这个需求可以描述为: 实现一种方法,在桌面窗口程序中的某个控件上显示cocos2dx的场 ...

  8. QT源码解析(一) QT创建窗口程序、消息循环和WinMain函数

    QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowse ...

  9. VC菜菜鸟:建立第一个基于Visual C++的Windows窗口程序

    建立第一个基于VisualC++的Windows窗口程序: 发表于:http://blog.csdn.net/it1988888/article/details/10306585 a)执行命令:新建 ...

随机推荐

  1. AP_付款方式汇总:标准付款、退款退货付款、撤销付款(概念)

    2014-06-04 Created By BaoXinjian

  2. Android判断当前网络是否可用--示例代码

    Android判断当前网络是否可用--示例代码 分类: *07 Android 2011-05-24 13:46 7814人阅读 评论(4) 收藏 举报 网络androiddialogmanagern ...

  3. Openresty增加waf配置

    Openresty增加waf配置 1. Ngx lua waf 说明 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 防止svn/备份之类文件泄漏 防止Apach ...

  4. POJ 1789:Truck History(prim&amp;&amp;最小生成树)

    id=1789">Truck History Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 17610   ...

  5. python标准库介绍——2 os.path模块详解

    == os.path 模块 == ``os.path`` 模块包含了各种处理长文件名(路径名)的函数. 先导入 (import) ``os`` 模块, 然后就可以以 ``os.path`` 访问该模块 ...

  6. jenkins 执行远程linux命令

    在Jenkins中进行构建时,可能需要首先SSH登录到一个远程服务器以执行必要的脚本,然后再执行构建.这时,需要安装SSH Plugin,并进行如下配置.1.在Jenkins界面,系统管理->管 ...

  7. 不停mysql服务添加从库的两种方式

    现在生产环境MySQL数据库是一主一从,由于业务量访问不断增大,故再增加一台从库.前提是不能影响线上业务使用,也就是说不能重启MySQL服务,为了避免出现其他情况,选择在网站访问量低峰期时间段操作. ...

  8. 使用cat命令添加或附加多行文本

    覆盖原有文本: cat>test<<EOF the 1 line the 2 line the 3 line EOF 追加的原有文本尾部: cat>>test<&l ...

  9. FPGA Prototyping By Verilog Examples第五章 状态机FSM设计

    上升沿检测电路之Moore型FSM // Listing 5.3module edge_detect_moore ( input wire clk, reset, input wire level, ...

  10. 【Android】17.2 Activity与Local Service的绑定

    分类:C#.Android.VS2015: 创建日期:2016-03-03 一.简介 如果服务是你的应用程序所私有的,即服务(Service)与客户端(Activity)都在同一个项目中(大部分应用程 ...