Windows 程序内部运行机制

发表于:2009-11-30 11:10

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  一、WinMain 函数原型

  int WINAPI WinMain(
  HINSTANCE hInstance,      // handle to current instance 程序当前运行实例句柄
  HINSTANCE hPrevInstance, // handle to previous instance 前一个实例句柄,参数总为NULL
  LPSTR lpCmdLine,          // command line 以空字符串结尾的命令行参数
  int nCmdShow              // show state 指定窗口的显示方式
  )

  二、创建一个窗口

  1.设计一个窗口类

  2.注册一个窗口类

  3.创建窗口

  4.显示及更新窗口

  (1).设计一个窗口类

  typedef struct _WNDCLASS{
  UINT style;
  WNDPROC lpfnWndProc;
  int cbClsExtra;
  int cbWndExtra;
  HANDLE hInstance;
  HICON Icon;
  HCURSOR Cursor;
  HBRUSH hbrBackground;
  LPCTSTR lpszMenuName;
  LPCTSTR lpszClassName;
  } WNDCLASS;

  ① style 属性指定窗口样式:

  CS_HREDRAW - 水平宽度变化重绘。

  CS_VREDRAW - 垂直方向高度变化重绘.

  CS_NOCLOSE - 禁用系统CLOSE命令.设关闭按钮.

  CS_DBLCLKS - 窗口接收双击消息.

  ② lpfnwndproc 函数指针

  指向窗口过程函数

  窗口过程函数是一个回调函数

  ③ cbclsExtra; -- 一般值为0

  Windows 系统中每一个窗口类型管理一个WNDCLASS结构

  ④ cbwndExtra; -- 一般值为0

  Windows系统中为每一个窗口管理一个内部数据结构,在注册一个窗口类时,

  应用程序能够指定一定字节数的附加内存空间,称为窗口附加内存。

  ⑤hInstance

  包含窗口过程的程序实例句柄

  ⑥hIcon 窗口类图标句柄

  成员变量须为一个图标资源句柄且成员为NULL,为系统提供默认图标

  我们可使用loadIcon函数来加载一个图标资源,并且它给系统分配图标句柄。

  函数原型:

  HIcon loadIcon(HINSTANCE hInstance, LPCTSTR lpIconName)

  ⑦hCursor指定窗口类光标句柄 -- 必须加载一个光标资源句柄,如果成员为NULL,

  无论何时鼠标进入到应用程序窗口中,应用程序都必须明确设置光标形状。

  ⑧hbrBackgound指定窗口类背景画刷句柄

  当窗口发生重绘,系统使用这里指定画刷来擦除窗口背影。

  ⑨ lpszMenuName -- 指定菜单资源名字(以以后终止字符串)

  如果使用菜单资源ID,那么需要用MAKENTRESouRCE宏来转换

  如果将其初始化为NULL,那么就算默认没有菜单。

  ⑩ lpszClassName - 指定窗口类名字(相当于给窗口取名字)

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号