编写窗口程序的步骤:
.定义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. python学习笔记013——推导式

    1 推导式简介 推导式comprehensions(又称解析式),是Python的一种独有特性. 推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 推导式有三种形式: 1)列表推导式 (li ...

  2. telnet远程登录协议

    什么是Telnet? 对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协议,但是对于入侵者而言,Telnet只是一种远程登录的工具.一旦入侵者与远程主机建立了Telnet ...

  3. Android开发12——Andorid中操作数据库的insert的两种方法以及nullColumnHack

    一.发现问题 先看两种方法插入数据 public void save(Person p){ SQLiteDatabase db = dbHelper.getWritableDatabase(); db ...

  4. 百度地图地址解析(百度Geocoding API)

    1.什么是Geocoding? Geocoding API 是一类简单的HTTP接口,用于提供从地址到经纬度坐标或者从经纬度坐标到地址的转换服务,用户可以使用C# .C++.Java等开发语言发送HT ...

  5. maven将镜像站点改为中国开源镜像点

    在Apache官网上下载bin文件,解压到相应目录.然后配置/etc/profile即可,环境变量名为M2_HOME,如下:(配置完后注意source /etc/profile)#Mavenexpor ...

  6. Transport level information does not match with SOAP Message namespace URI错误的理解

    理论知识: 转自:http://wso2.com/library/articles/differentiating-between-soap-versions-looking-soap-message ...

  7. GCC实现多文件编译,静态库,动态库

    一 代码 //add.h int add(int a, int b); //add.c int add(int a, int b) {     return a+b; } //main.c #incl ...

  8. canvas.drawBitmap(bitmap, src, dst, paint)

    // GameView.drawImage(canvas, mBitDestTop, miDTX, mBitQQ.getHeight(), mBitDestTop.getWidth(), mBitDe ...

  9. How do I create a List in Scala?

    Scala List class FAQ: How do I create a List in Scala? You can create a Scala List in several differ ...

  10. IR的评价指标之MRR

    MRR(Mean Reciprocal Rank): 是一个国际上通用的对搜索算法进行评价的机制,即第一个结果匹配,分数为1,第二个匹配分数为0.5,第n个匹配分数为1/n,如果没有匹配的句子分数为0 ...