第1课、创建最简窗口程序

来源:互联网 发布:程序员教程第四版pdf 编辑:程序博客网 时间:2024/06/09 15:59

SimplestWindow程序说明

一、功能实现

最简窗口程序需要实现的功能:

1.窗口风格:窗口具有应用程序图标,标题栏,最大、最小和关闭按钮。

2.运行程序后窗口程序正常显示,点击窗口的关闭按钮,程序正常关闭。

二、核心组织

     其核心组织构成如下:

1.   程序入口函数(必不可少)

1.1设计、注册窗口类,创建、显示、更新窗口

1.2.消息循环机制

2.   程序窗口过程函数(必不可少)

1.对WM_CLOSE消息进行消息响应(响应窗口右上角的关闭按钮消息)

2.对WM_DESTROY消息进行相应(正式退出程序)

3.对其他消息进行缺省过程处理(必不可少)


三、代码编写

#include <windows.h>


//--1.窗口过程函数原型声明--//
LRESULT CALLBACK winproc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
);


//--2.程序入口函数--//
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nShowCmd
)
{
//--2.1 设计窗口类--//
WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(COLOR_ACTIVEBORDER);
wndcls.hCursor=LoadCursor(NULL,IDC_ARROW);
wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=winproc;
wndcls.lpszClassName="Window";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW | CS_VREDRAW;
//--2.2 注册窗口类--//
RegisterClass(&wndcls);
//--2.3 创建窗口--//
HWND hwnd;
hwnd=CreateWindow("Window","SimplestWindow",WS_OVERLAPPEDWINDOW,0,0,600,400,
NULL,NULL,hInstance,NULL);
//--2.4 显示窗口--//
ShowWindow(hwnd,SW_SHOWNORMAL);
//--2.5 更新窗口--//
UpdateWindow(hwnd);
//--2.6 消息循环--//
MSG msg;
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}


//--3.窗口过程函数定义--//
LRESULT CALLBACK winproc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
switch(uMsg)
{
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}

程序运行结果如下:

//--备注:作者太懒了,什么都没写!--//