2013.7.26 学习笔记《windows核心编程》(二) HelloWorld
2013-07-26 22:47
357 查看
《windows核心编程》(二)-----------2013.7.26
一、概念
编写第一个窗口程序(HelloWorld版)
•编写窗口程序的步骤:
1 定义WinMain函数 - 入口函数
2 定义窗口处理函数 -
用于处理窗口中的各种消息
3 注册窗口类-
将窗口类注册到系统中
4 创建窗口 -
将窗口创建(并未显示)
5 显示窗口 -
将窗口显示在显示器中
6 消息循环 -
提取消息/翻译消息/派发消息
7 消息处理
当天重要笔记:
回调:定义一个函数自己不调用,交给操作系统调用。
钩子:当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
windows下的C语言在开头进行定义。
二、当天程序代码及运行结果
运行结果
三、问题
1.回调函数WndProc()返回的DefWindowProc()函数作用是什么?
一、概念
编写第一个窗口程序(HelloWorld版)
•编写窗口程序的步骤:
1 定义WinMain函数 - 入口函数
2 定义窗口处理函数 -
用于处理窗口中的各种消息
3 注册窗口类-
将窗口类注册到系统中
4 创建窗口 -
将窗口创建(并未显示)
5 显示窗口 -
将窗口显示在显示器中
6 消息循环 -
提取消息/翻译消息/派发消息
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()函数作用是什么?
相关文章推荐
- Servlet学习笔记_03_使用servlet编写一个简单的helloworld程序
- 作业调度框架 Quartz 学习笔记(一) -- HelloWorld !!!
- Cocos2d-x学习笔记-- 深入剖析HelloWorld
- 丹的python学习笔记Day1python安装+我的helloworld
- 《Windows核心编程》复习和学习笔记!
- Akka学习笔记01--简介和HelloWorld程序
- Python学习笔记(一):最基本的HelloWorld
- Jetty+Dojo+Tomcat的Comet学习笔记-HelloWorld
- Spring学习笔记 1. 尚硅谷_佟刚_Spring_HelloWorld
- Struts 2 学习笔记 - HelloWorld
- Spring MVC学习笔记:helloworld的实现+@RequestMapping 的使用(上集)
- hibernate3.3.2学习笔记---Annotation版本的HelloWorld及org.hibernate.HibernateException错误改正
- WebService 学习笔记之一 HelloWorld
- [maven学习笔记]第一节,认识maven,搭建maven开发环境,写第一个HelloWorld
- 2013.8.15 学习笔记《windows核心编程》(十二) 鼠标消息与定时器消息
- Struts2_学习笔记(一)--------学习工具下载、HelloWorld、运行机制
- [maven学习笔记]第一节,认识maven,搭建maven开发环境,写第一个HelloWorld
- 【Cocos2d-x3.0学习笔记 02】HelloWorld,你懂得
- Java学习笔记1 HelloWorld
- cocos2d-x学习笔记(一)--HelloWorld