Windows核心编程03-编写窗口程序的步骤
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows核心编程03-编写窗口程序的步骤相关的知识,希望对你有一定的参考价值。
编写窗口程序的步骤:
1 定义WinMain函数
2 定义窗口处理函数(处理消息)
3 注册窗口类
4 创建窗口(在内存中创建窗口)
5显示窗口(根据内存的数据将窗口绘制出来)
6消息循环(提取/翻译/派发)消息
7消息处理
#include "windows.h"
LRESULT WndProc(HWND hWnd,UINT nMsg,WPARAM wParam,LPARAM lParam)
{
return DefWindowProc(hWnd,nMsg,wParam,lParam);
}
//定义WinMain函数
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","hWnd",WS_OVERLAPPEDWINDOW,100,100,500,500,NULL,NULL,hInstance,NULL);
//显示窗口
ShowWindow(hWnd,SW_SHOW);
//消息循环
while(GetMessage(&nMsg,NULL,0,0))
{
//消息处理
TranslateMessage(&nMsg);
DispatchMessage(&nMsg);
}
return 0;
}
编译 链接。。。 cl.exe link.exe
资源的使用
编写资源的文件-.rc资源脚本文件
编写rc文件-RC.EXE
将资源链接到程序中-LINK.EXE
实际操作步骤:
1,新建一个HelloWnd.rc的文件,内容为:100 ICON Small.ico
VC 6.0 对.ico文件的要求很高如果找不到合适的.ico就去建一个窗口程序复制里面的Small.ico
2,复制Small.ico复制到同个目录
3,编译:rc.exe HelloWnd.rc 生成HelloWnd.RES
4,链接 .obj与.RES link.exe HelloWnd.obj HelloWnd.res user32.lib
5, 生成一个图标改变的 HelloWnd.exe
NMAKE和Makefile
NMAKE
Makefile的一个解释执行的工具,根据Makefile文件中的定义,编译和链接程序,最终生成目标文件
Makefile(.mak)
定义编译和链接等操作的脚本文件(把项目的处理命令写入),一般对整个项目进行处理。
Makefile的语法:
HELLO:依赖行
cl.exe hellownd.c /c //命令行
rc.exe hellownd.rc //命令行
link.exe hellownd.obj hellownd.res user32.lib //命令行
Makefile文件中可以有多个依赖行
执行方式
NMAKE首先找到第一个依赖行
检查依赖行的依赖项,如果发现依赖项,首先执行依赖项命令行
执行完所有依赖命令后,再执行自己的命令行。
执行步骤:
1,创建一个.mak的文件 HelloWnd.mak 写入以上语法那几行
2, 执行命令 使用nmake执行 nmake HelloWnd.mak
3, 如果有多个依赖行 可以指定执行哪个依赖行 nmake /f HelloWnd.mak CLEAN
4,多个依赖行执行一次执行及顺序,先执行 : 后的依赖行
HELLO:CLEAN cl.exe hellownd.c /c rc.exe hellownd.rc link.exe hellownd.obj hellownd.res user32.lib CLEAN: del *.obj del *.res del *.exe
执行命令 nmake HelloWnd.mak 先执行CLEAN的依赖行,再执行HELLO依赖行
以上是关于Windows核心编程03-编写窗口程序的步骤的主要内容,如果未能解决你的问题,请参考以下文章