2013.7.26 学习笔记《windows核心编程》(二) HelloWorld

来源:互联网 发布:王者刷点卷的软件 编辑:程序博客网 时间:2024/04/27 17:53

《windows核心编程》(二)-----------2013.7.26

一、概念

编写第一个窗口程序(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()函数作用是什么?

原创粉丝点击