2013.7.26 学习笔记《windows核心编程》(二) HelloWorld
来源:互联网 发布:王者刷点卷的软件 编辑:程序博客网 时间:2024/04/27 17:53
《windows核心编程》(二)-----------2013.7.26
一、概念
编写第一个窗口程序(HelloWorld版)
•编写窗口程序的步骤:
1 定义WinMain函数 - 入口函数
1 定义WinMain函数 - 入口函数
2 定义窗口处理函数 - 用于处理窗口中的各种消息
3 注册窗口类- 将窗口类注册到系统中
4 创建窗口 - 将窗口创建(并未显示)
5 显示窗口 - 将窗口显示在显示器中
6 消息循环 - 提取消息/翻译消息/派发消息
7 消息处理
当天重要笔记:
回调:定义一个函数自己不调用,交给操作系统调用。
钩子:当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
windows下的C语言在开头进行定义。
7 消息处理
当天重要笔记:
回调:定义一个函数自己不调用,交给操作系统调用。
钩子:当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
windows下的C语言在开头进行定义。
#include "windows.h"LRESULT WndProc(HWND hWnd,UINT nMsg, WPARAM wParam, LPARAM lParam ){return DefWindowProc( hWnd,nMsg,wParam,lParam);}int WinMain( HINSTANCE hInstance,HINSTANCE HPreInstance,LPSTR lpCmdLine,int nCmdShow){WNDCLASS wc = {0};HWND hWnd = 0;MSG nMsg = {0};wc.style = CS_HREDRAW | CS_VREDRAW;//窗口水平垂直位置发生变化重新绘制窗口wc.lpfnWndProc = (WNDPROC)WndProc;wc.cbClsExtra = 0;wc.cbWndExtra = 0;wc.hInstance = hInstance;wc.hIcon = NULL;wc.hCursor = NULL;wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);wc.lpszMenuName = NULL;wc.lpszClassName = "Main";RegisterClass( &wc );//将以上填写的信息全部注册到操作系统中hWnd = CreateWindow("Main","Window",WS_OVERLAPPEDWINDOW,100,100,500,500,NULL,NULL,hInstance,NULL);//在内存中出现关于窗口的各项数据ShowWindow(hWnd,SW_SHOW);//参数:窗口句柄与显示方式 SW_SHOW : 原样显示while(GetMessage(&nMsg,NULL,0,0))//抓取消息{TranslateMessage(&nMsg);//翻译消息DispatchMessage(&nMsg);//派发消息,将消息派发给自己定义的函数}return 0;}
运行结果
三、问题
1.回调函数WndProc()返回的DefWindowProc()函数作用是什么?
- 2013.7.26 学习笔记《windows核心编程》(二) HelloWorld
- Windows核心编程笔记(二)
- windows核心编程(笔记二)
- windows核心编程学习笔记
- windows核心编程学习笔记
- Windows核心编程学习笔记
- 《windows核心编程》笔记(二)
- 《Windows核心编程》学习重点二
- 2013.7.29 学习笔记《windows核心编程》(四) 字符输出
- 2013.7.31 学习笔记《windows核心编程》(五) 窗口注册
- 《windows核心编程》学习笔记 内核对象
- Windows 核心编程学习笔记-第一章
- Windows 核心编程学习笔记-第二章
- Windows核心编程ErrorShow学习笔记
- Windows核心编程学习笔记一
- windows核心编程学习笔记一
- WINDOWS核心编程学习笔记--字符串处理
- windows 核心编程学习笔记3
- Packetix VPNClient Linux端配置及加入VPNServer过程
- Circular Array
- Linux的inode的理解
- 初识MFC ---对话框
- Adobe AIR and Flex
- 2013.7.26 学习笔记《windows核心编程》(二) HelloWorld
- VS2008 由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题。
- 字典get方法:从字典中获取一个值
- 完全用Linux工作
- 移植Mplayer到OK6410开发板
- 考试排名 杭电2093
- java中的折半查找(二分查找)
- 判断一颗二叉树是否为平衡二叉树(AVL)
- 《领域驱动设计 C# 2008 实现》 - 书摘精要