码迷,mamicode.com
首页 > Windows程序 > 详细

window程序的结构

时间:2015-04-12 20:49:50      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

  • WinMain()函数  
int WINAPI WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow
    )
{
    return 0;
}

hInstance:HINSTANCE 类型,指向某个实例的句柄,实例是正在运行的程序。

lpCmdLine:指向某个字符串的指针,该字符串包含启动程序的命令行字符。

nCmdShow:决定被创建窗口的外观。

  • 窗口过程函数

此函数处理应用程序从操作系统接收的许多消息。  WndProc 负责响应该事件。 

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
  • 指定程序窗口

WNDCLSSEX:特殊struct类型,包含用来指定窗口的数据。

typedef struct tagWNDCLASSEX {
  UINT      cbSize;       //The size, in bytes, of this structure.   
  UINT      style;
  WNDPROC   lpfnWndProc;
  int       cbClsExtra;
  int       cbWndExtra;
  HINSTANCE hInstance;
  HICON     hIcon;
  HCURSOR   hCursor;
  HBRUSH    hbrBackground;
  LPCTSTR   lpszMenuName;
  LPCTSTR   lpszClassName;
  HICON     hIconSm;
} WNDCLASSEX, *PWNDCLASSEX;

 构造WNDCLASSEX类型对象并填写对象成员的值

    static LPCTSTR szAPPName = L"APP";

WNDCLASSEX WindowClass; WindowClass.cbSize
= sizeof(WNDCLASSEX); WindowClass.style = CS_HREDRAW | CS_VREDRAW;//改变窗口的宽度或高度,则重画窗口 WindowClass.lpfnWndProc = WndProc;//存储着指向程序中处理消息的函数指针 WindowClass.cbClsExtra = 0;//为特别用途提供额外空间 WindowClass.cbWndExtra = 0;//为特别用途提供额外空间 WindowClass.hInstance = hInstance;//容纳当前应用程序实例的句柄 WindowClass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));//定义最小化时应用程序的图标 WindowClass.hCursor = LoadCursor(NULL, IDC_ARROW);//定义窗口使用的光标 WindowClass.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);//定义窗口工作区的背景颜色 WindowClass.lpszMenuName = NULL;//定义窗口菜单的资源的名称 WindowClass.lpszClassName = szAPPName;//存储着为标识该特定的窗口类而提供的名称,通常使用应用程序的名称为该成员赋值 WindowClass.hIconSm = LoadIcon(WindowClass.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));//标识某个与该窗口类相联系的小图标
  • 创建程序窗口

注册创口类

RegisterClassEx(&WindowClass);

创建窗口,使用函数CreateWindow(),传递给CreateWindow()函数的其他实差将添加一些附加的特性,函数返回所创建窗口的句柄。

HWND WINAPI CreateWindow(
  _In_opt_  LPCTSTR lpClassName,
  _In_opt_  LPCTSTR lpWindowName,
  _In_      DWORD dwStyle,
  _In_      int x,
  _In_      int y,
  _In_      int nWidth,
  _In_      int nHeight,
  _In_opt_  HWND hWndParent,
  _In_opt_  HMENU hMenu,
  _In_opt_  HINSTANCE hInstance,
  _In_opt_  LPVOID lpParam
);
    HWND hWnd;
        hWnd = CreateWindow(
        szAPPName,//类名称,用来识别前面在RegisterClassEx()函数调用中传递的WNDCLASSEX struct
        szTitle,//定义标题栏上出现的文本
        WS_OVERLAPPEDWINDOW,//定义窗口在创建之后应具有的样式
        CW_USEDEFAULT, CW_USEDEFAULT,
        500, 100,//定义窗口在屏幕上的位置和大小
        NULL,//父窗口的句柄
        NULL,//不需要菜单
        hInstance,//指定由Windows传递给程序的的当前程序实例的句柄
        NULL//多文档界面
        );

显示窗口

ShowWindow(hWnd, nCmdShow);

重画窗口

UpdateWindow(hWnd);

 

window程序的结构

标签:

原文地址:http://www.cnblogs.com/zhangmaochen/p/4419485.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!