您的位置:首页 > 编程语言

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语言在开头进行定义。

二、当天程序代码及运行结果

#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()函数作用是什么?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: