windows窗口过程函数名词解析
windows窗口过程函数名词解析
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
1. LRRESULT
lresult:
MSDN:
  32-bit value returned from a windows procedure or callback function
在winbnt.h中定义为 long long
在windef.h中定义为 long result
LRESULT中L表示它是一个长整型,RESULT表示返回的某个结果
2. CALLBACK
callback:
   存在定义如下
    #define CALLBACK _stdcall
    #define WINAPI _stdcall
    1. CALLBACK与WINAPI完全等价
    2. _stdcall是一种调用约定,它让编译器知道了应当以windows兼容的方式来产生机器指令。如果去掉虽然可以通过编译,但会产生一条警告。
3. WndProc
wndproc:
   窗口过程函数,主要用于处理发送给窗口的消息
4. HWND
H表示handle,指句柄
WND表示指向对象window,指窗口对象
因此hwnd指窗口句柄,如果将窗口比作人,那么窗口句柄就是其身份证
5. UINT
表示待处理消息的ID,即消息的类型
6. WPARAM,LPARAM
消息的附加信息
消息的组成:一个消息由一个消息名称(UINT),和两个参数(WPARAM,LPARAM)构成。当用户进行了输入或是窗口的状态发生改变时系统都会发送消息到某一个窗口。例如当菜单选中之后会有WM_COMMAND消息发送,WPARAM的高字中(HIWORD(wParam))是命令的ID号,对菜单来讲就是菜单ID。当然用户也可以定义自己的消息名称,也可以利用自定义消息来发送通知和传送数据。
因为一个程序可以有多个窗口,窗口的第一个参数就用来指定接收消息的那个特定窗口,即窗口句柄。
同时我们用switch (unit)判断消息类型并进行不同的处理
LRESULT CALLBACK WndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam )
{
	switch(message)
	{
	case WM_PAINT:
		ValidateRect((hwnd,NULL);  //更新客户区显示
		break;
	case WM_KEYDOWN:
		if(wParam==VK_ESCAPE) DestroyWindow(hwnd);  //按照命令销毁窗口
		break;
	case WM_DESTROY:
		PostQuitMessage(0);   //提示操作系统有一个线程请求终止
		break;
	default:
		return DefWindowProc(hwnd,message,wParam,lParam);  //返回默认处理函数处理结果
	}
	return 0;
}
												
											windows窗口过程函数名词解析的更多相关文章
- 从普通函数到对象方法 ------Windows窗口过程的面向对象封装
		
原文地址:http://blog.csdn.net/linzhengqun/article/details/1451088 从普通函数到对象方法 ------Windows窗口过程的面向对象封装 开始 ...
 - 窗口类WNDCLASSEX名词解析
		
窗口类WNDCLASSEX名词解析 typedef struct tagWNDCLASSEX{ UINT cbsize; UINT style; WNDPROC lpfnWNDProc; int cb ...
 - win32程序通过LPCREATESTRUCT中的lpCreateParams传递参数给窗口过程函数
		
win32窗口程序中如果需要给窗口过程函数传递自定义参数,可以通过LPCREATESTRUCT结构体中的lpCreateParams进行传递. 创建窗口实例函数: m_hWnd = CreateWin ...
 - win32编程中消息循环和WndProc()窗口过程函数
		
原文地址:https://blog.csdn.net/zxxSsdsd/article/details/45504383 在win32程序的消息循环函数中 while (GetMessage (&a ...
 - 孙鑫视频学习:改变窗口过程函数中出现error C2440错误的解决方法
		
在Visual Studio 2010中,即使代码是完完全全按照孙鑫视频中的敲,也会在出现error C2440,这是因为开发平台由VC6.0升级至VS2010,需要将原有的项目迁移.VS2010对消 ...
 - 深入解析Windows窗口创建和消息分发(三个核心问题:怎么将不同的窗口过程勾到一起,将不同的hwnd消息分发给对应的CWnd类去处理,CWnd如何简单有效的去处理消息,由浅入深,非常清楚) good
		
笔记:争取不用看下面的内容,只看自己的笔记,就能记住这个流程,就算明白了: _tWinMain-->AfxWinMain,它调用四个函数: -->AfxWinInit用于做一些框架的初始化 ...
 - win32手动创建windows窗口的,小记
		
摘抄自文档,其中的函数需要以后花时间看 向 WinMain 添加功能 首先,在 WinMain 函数内部创建 WNDCLASSEX 类型的窗口类结构. 此结构包含有关窗口的信息,如应用程序图标.窗口的 ...
 - 设置windows窗口ICON 【windows 编程】【API】【原创】
		
1. ICON介绍 最近开始接触windows 编程,因此将自己所接触的一些零散的知识进行整理并记录.本文主要介绍了如何更改windows对话框窗口的ICON图标.这里首先介绍一下windows IC ...
 - Windows窗口的创建
		
Windows窗口创建的基本代码: #include <Windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); i ...
 
随机推荐
- HDU 6096 树套树
			
思路: 网上的题解有AC自动机的,有trie树的,还有(乱搞?)的 首先把输入的那n个串按照字典序排序, 把n个串翻转以后再按照字典序排序 这样我们发现, 查的前缀在字典序排序后是一段区间, 查的后缀 ...
 - 二分查找/暴力 Codeforces Round #166 (Div. 2) B. Prime Matrix
			
题目传送门 /* 二分查找/暴力:先埃氏筛选预处理,然后暴力对于每一行每一列的不是素数的二分查找最近的素数,更新最小值 */ #include <cstdio> #include < ...
 - 题解报告:hdu 4907 Task schedule
			
Problem Description 有一台机器,并且给你这台机器的工作表,工作表上有n个任务,机器在ti时间执行第i个任务,1秒即可完成1个任务.有m个询问,每个询问有一个数字q,表示如果在q时间 ...
 - dalvik.system.VMRuntime 隐藏api的迷惑
			
[Android UI界面]关于dalvik.system.VMRuntime 的 使用迷惑 我也遇到了相同问题.不知楼主现在解决了没有? 回答1: [Android UI界面]关于dalvik.sy ...
 - LD_LIBRARY_PATH与-L的关系以及延伸
			
最近跟同学讨论c++在编译时g++ -L.. 和LD_LIBRARY_PATH的问题,今天在做一个东西的时候发现,我对这两个东西的理解是错误的,经过一番研究,写下我对这些东西的想法,如果有不对的地方, ...
 - 配置maven环境变量cmd控制台提示:mvn不是内部或外部命令,也不是可运行的程序或批处理文件
			
配置maven环境变量cmd控制台提示:mvn不是内部或外部命令,也不是可运行的程序或批处理文件 首先maven环境变量: 变量名:MAVEN_HOME 变量值:E:\apache-maven-3.2 ...
 - Suricata的所有运行方式模式(图文详解)
			
不多说,直接上干货! suricata的基本组成.Suricata是由所谓的线程(threads).线程模块 (thread-modules)和队列(queues)组成.Suricata是一个多线程的 ...
 - Java入门第38课——猜字母游戏之设计程序结构
			
问题 本案例需要实现猜字母游戏程序中的程序结构 方案 分析猜字母游戏可以看出,程序首先需要随机产生5个不同的字母作为需要猜测的结果,因此,可以先定义一个方法,以实现此功能: ...
 - spring-shiro 配置
			
配置 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www ...
 - Flex 布局 (两个div居中自适应 宽度变小变一列,宽度够就是两列)
			
https://www.runoob.com/w3cnote/flex-grammar.html display: flex; justify-content: center; align-items ...