Windows 程序内部运行机制

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

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

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

分享:

  三、注册窗口类

  设计宏窗口类后(WNDCLASS),我们还需要用 RegisterClass函数

  对其进行注册,注册成功后,才可创建该类型窗口 原型如下:

  ATOM RisterClass(Const WNDCLASS *LPWNDCLass);

  函数只有 - 参数,即上步骤中所设计窗口类对象指针。

  四、创建窗口 -- CreateWindow 函数

  HWND CreateWindow(
  LPCTSTR lpClassName, // 窗口类的名称 说明1
  LPCTSTR lpWindowName // 窗口的名字 - 窗口样式又标题栏,指定窗口名是在标题栏
  DWORD    dwstyle, // 指定窗口类样式,具体参考WS_OVERLAPPEDWINDOW类型
  int x, // 窗口左上角x.y坐标 -- 宽、高。 -- x,设为CW_USEDEFAULT,窗口默认左上角坐标忽略y参数。
  int y,
  int nWidth,
  int nHeight, // - 设为 CW_USEDEFAULT 窗口默认宽、高,nHight忽略。
  HWND hwndparent, // 创建窗口的父窗口句柄
  HMENU hmenu. // 指定窗口菜单句柄
  HANDLE hInstance, // 指定窗口所属应用程序实例句柄
  LPVOID lparam // WM_CREATE消息附加参数lparam传入数据指针
  // 创建多文档界面窗口,lparam指向CLIENTCREATESRUCT结构体多数窗口设为NULL
  // 说明1、调用CreateWindows函数前,没有用RegisterClass函数,注册名称的窗口类。
  #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED // 产生层叠窗口有标题栏和边框
  WS_CAPTION     |\ 创建一个有标题窗口
  WS_SYSMENU     |\ 创建在标题栏上有系统菜单和WS_CAPTION类型一起作用
  WS_THICKFRAME  |\ 创建一个具有可调边框窗口
  WS_MINIMIZEBOX |\ 最小化窗口,设定WS_SYSMENU类型
  WS_MAXIMIZEBOX |\ 最大化窗口,设定WS_SYSMENU类型
  )

  窗口创建成功,CreaeWindow 函数返回系统为窗口分配句柄,否则返回NULL

  五、显示及更新窗口 -- ShowWindow 函数

  原型

  Bool ShowWindow(
  HWND hwnd, // 创建窗口后返回哪个窗口句柄。
  int nCmdshow // 用来指定窗口显示状态。
  );

  nCmdShow 参数一般为:

  SW_HIDE -- 隐藏并激活其他窗口        SW_SHOW --窗口原位置 以原来尺寸激活和显示窗口

  SW_SHOWMAXIMIZED -- 激活窗口并将其最大化显示

  SW_SHOWMINIMIZED -- 激活窗口并将其最小化显示

  SW_SHOWNORMAL    -- 激活并显示窗口 -- 窗口最小化或最大化状态 系统其恢复原来尺寸和大小。

  更新窗口 -- updateWindow来刷新窗口

  原型:

  Bool updateWindow(

  HWHD hwndl;// 指创建成功后的窗口句柄

  ) updateWindow 函数通过发送一个WM_PAINT 消息来刷新窗口

  updateWindow 将WM_PAINT消息直接发送给窗口过程函数进行处理,而没放到我们前面所说的消息队列中。

32/3<123>
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号