Windows应用程序组成

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

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

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

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

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

 

ExpandedBlockStart.gif 代码
//  包含程序中所需的数据类型和数据类型的定义
#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 ;
}

 

 

程序运行效果如图:

转载于:https://www.cnblogs.com/xukc/archive/2010/04/21/1717367.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值