Windows应用程序组成

所有的Windows应用程序必须包含两个基本函数:

(1)应用程序主函数WinMain()

WinMain()函数定义了窗口句柄,创建初始化窗口并启动一个消息循环。

(2)窗口处理函数WinProc()

WinProc()函数处理所有从操作系统传递到窗口的消息。每一个窗口,无论是简单的或复杂的,都要有一个窗口处理函数。

 

代码
// 包含程序中所需的数据类型和数据类型的定义
#include <windows.h>
// 窗口函数说明
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

//初始化窗口类
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPreInstance,LPSTR lpCmdLine,int nCmdShow)
{
    HWND hwnd;
    MSG Msg;
    WNDCLASS wc;
    
char szApplicationName[]="EXAM";//窗口标题名
    
// 定义窗口类
    wc.style=CS_HREDRAW|CS_VREDRAW;//定义窗口类型为当窗口大小变化时窗口重画
    wc.lpfnWndProc=WndProc;        //定义窗口处理函数
    wc.cbClsExtra=0;               //定义窗口类无扩展
    wc.cbWndExtra=0;              //窗口实例无扩展
    wc.hInstance=hInstance;       //当前实例句柄
    wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口的最小化图标为默认图标
    wc.hCursor=LoadCursor(NULL,IDC_ARROW);//窗口采用箭头光标
    wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景为白色
    wc.lpszMenuName=NULL;    //窗口中无菜单
    wc.lpszClassName=szApplicationName;  //定义窗口类名称


    
//注册窗口类
    RegisterClass(&wc);
    
// 创建窗口
    hwnd=CreateWindow
    (
        szApplicationName,   
//窗口类名
        szApplicationName,   //窗口的标题名
        WS_OVERLAPPEDWINDOW,   //窗口的风格
        CW_USEDEFAULT,        
        CW_USEDEFAULT,       
        CW_USEDEFAULT,
        CW_USEDEFAULT,
        NULL,
        NULL,
        hInstance,     
//创建此窗口的应用程序的当前句柄
        NULL
);
    
//显示窗口
    ShowWindow(hwnd,nCmdShow);
    
//绘制用户处
    UpdateWindow(hwnd);
    
//消息循环
    while(GetMessage(&Msg,NULL,0,0))
    {
        TranslateMessage(
&Msg);
        DispatchMessage(
&Msg);
    }
    
return Msg.wParam;
}

//窗口函数
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam, LPARAM lParam)
{
    
switch(message)
    {
    
case WM_DESTROY:
        PostQuitMessage(
0);
    
default:
            
return DefWindowProc(hwnd,message,wParam,lParam);
    }
    
return 0;
}

 

 

程序运行效果如图:

posted on 2010-04-21 16:39  Hank.J  阅读(407)  评论(1编辑  收藏  举报

导航