你的第一个Windows程序
2013-04-20 22:16
162 查看
MSDN在线原文(英文)
示例程序屏幕截图
下面是完整的程序代码:
你可以从Windows Hello World Sample下载完整的Visual Studio项目。
它会给出一个有帮助的简要概述,说明这段代码是做什么的。随后的主题将详细的分析代码。
wWinMain是程序的入口点,当程序启动,他注册应用程序窗口某些行为的信息。其中最重要的信息是一个函数的地址,在这个例子中是WindowProc,这个函数定义窗口的行为——它的外观,如何与用户交互等等。
下一步,程序创建窗口和接收这个窗口唯一标识的句柄。
如果这个窗口顺利地创建,程序进入while循环,程序保持循环,直到程序关闭窗口并退出应用程序。
请注意程序没有显式地调用WindowProc函数,尽管我们说这是大多数应用程序逻辑的定义。Windows通过一系列的消息与程序通信,While循环内的代码驱动过程。每次程序调用 DispatchMessage
函数,每个消息间接的使Windows调用WindowProc函数。
详细的代码分析后续......
你的第一个Windows程序
在这个模块,我们编写一个最小的Windows程序。它的作用是创建并显示一个空白窗口。这第一个程序包含大约50行代码,不计算空白行和注释。这将是我们的起点;以后还会添加图形,文本,用户输入和其它功能。示例程序屏幕截图
下面是完整的程序代码:
#ifndef UNICODE #define UNICODE #endif #include <windows.h> LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg, WPARAM wParam,LPARAM lParam); int wWinMain(HINSTANCE hInstance,HINSTANCE,PWSTR pCmdLine,int nCmdShow) { //注册窗口类 const wchar_t CLASS_NAME[]=L"Sample Window Class"; WNDCLASS wc = {}; wc.lpfnWndProc =WindowProc; wc.hInstance =hInstance; wc.lpszClassName =CLASS_NAME; RegisterClass(&wc); //创建窗口 HWND hwnd = CreateWindowEx( 0, //可选窗口样式 CLASS_NAME, //窗口类 L"Learn to Program Windows", //窗口文本 WS_OVERLAPPEDWINDOW, //窗口样式 //窗口大小和定位 CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL, //父窗口 NULL, //菜单 hInstance, //实例句柄 NULL //其它应用程序的数据 ); if(hwnd == NULL) { return 0; } ShowWindow(hwnd,nCmdShow); //运行消息循环 MSG msg = {}; while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0; } LRESULT CALLBACK WindowProc(HWND hwnd,UINT uMsg, WPARAM wParam,LPARAM lParam) { switch(uMsg) { case WM_DESTROY: PostQuitMessage(0); return 0; case WM_PAINT: PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd,&ps); FillRect(hdc,&ps.rcPaint,(HBRUSH)(COLOR_WINDOW+1)); EndPaint(hwnd,&ps); return 0; } return DefWindowProc(hwnd,uMsg,wParam,lParam); }
你可以从Windows Hello World Sample下载完整的Visual Studio项目。
它会给出一个有帮助的简要概述,说明这段代码是做什么的。随后的主题将详细的分析代码。
wWinMain是程序的入口点,当程序启动,他注册应用程序窗口某些行为的信息。其中最重要的信息是一个函数的地址,在这个例子中是WindowProc,这个函数定义窗口的行为——它的外观,如何与用户交互等等。
下一步,程序创建窗口和接收这个窗口唯一标识的句柄。
如果这个窗口顺利地创建,程序进入while循环,程序保持循环,直到程序关闭窗口并退出应用程序。
请注意程序没有显式地调用WindowProc函数,尽管我们说这是大多数应用程序逻辑的定义。Windows通过一系列的消息与程序通信,While循环内的代码驱动过程。每次程序调用 DispatchMessage
函数,每个消息间接的使Windows调用WindowProc函数。
详细的代码分析后续......
相关文章推荐
- windows程序设计 你的第一个windows程序
- C语言Windows程序设计->第一天->我的第一个Windows程序
- 自己的第一个windows程序
- 学习C++ Windows 编程(你的第一个Windows程序)
- Windows程序设计学习笔记--第一个Windows程序以及宽字符集(了解)
- 如何只让Windows程序只启动一个实例,第二个实例启动只激活第一个实例
- 第一个Windows程序
- ACCP学习旅程之-----使用C#开发数据库应用程序(第四章 第一个Windows程序)
- 第一个标准Windows程序(个人一次写成的最简版本)
- 我的第一个windows程序
- 第四章 第一个Windows程序
- 我的第一个windows程序
- 我的第一个windows程序
- Windows学习笔记第二课---第一个windows程序Hello Windows!
- 《Windows程序设计》笔记之一——第一个Windows程序以及Windows程序原理
- 我的第一个windows程序(加油)
- Visual Studio 2010——C#的第一个Windows程序
- 我的第一个Windows程序
- 第一个windows程序
- 我的第一个Windows程序