当前位置: 首页 > news >正文

如何获得窗口句柄(HWND )和改变窗口属性

1、 对于一个窗口如何进行操作呢,首先要得到其使用句柄,我们可以用FindWindow()函数来获取当前窗口句柄,具体使用如下:

  HWND hFig = ::FindWindow(NULL,HWND);

  如果得到找到,则返回窗口的句柄,否则返回NULL。 当然我们可以使用 SetWindowPos(HWND hWnd, HWND hWndIsertAfter, int X, int Y, int cx, int cy , UINT Uflags) 改变窗口的大小和位置,Uflags是标志窗口的显示属性,具体值可以是SWP_NOMOVE 、SWP_NOZORDER 、SWP_NOACTIVATE 、SWP_FRAMECHANGED等。 具体的调用实例如下:

  HWND hFig = ::FindWindow(NULL,"Fig No. 1"); //找到窗口,并返回窗口句柄

  if(hFig == NULL) {

    AfxMessageBox("未能产生Figure窗口,图形绘制失败!");

    return;

  } // 获取绘图区域的位置和大小

  RECT PlotRec;

  CWnd *PlotArea = GetDlgItem(IDC_PLOTAREA); // 获取绘图区域指针

  PlotArea->GetWindowRect(&PlotRec); // 将绘图区域矩形赋给 定义矩形

  long Width = PlotRec.right - PlotRec.left; long Height = PlotRec.bottom - PlotRec.top; // 获得绘图区域的宽和高

  // 设置Figure窗口为绘图区域窗口的子窗口并调整其位置

  ::SetParent(hFig,PlotArea->GetSafeHwnd()); // 设置绘图区域窗口为 Figure窗口的父窗口

  ::SetWindowPos(hFig,NULL,1,1,Width,Height,SWP_NOZORDER | SWP_NOACTIVATE); // 设置绘图窗口的大小和位置

  // 设置窗口可见

  SetVisible(h_a,mwArray("ON"));

  // 进入窗口等待状态

  bWait = 1; mlfHGWaitForFiguresToDie();

2、当然你想改变窗口属性的话,还可以增加以下函数来改变窗口的属性

  long lStyle. = ::GetWindowLong(hFig,GWL_STYLE);

  ::SetWindowLong(hFig,GWL_STYLE,lStyle. & (~WS_CAPTION) & (~WS_THICKFRAME));

  ::SetWindowPos(hFig,NULL,0,0,0,0,SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED);

就写到这吧,其他的学会了再统一以一个实例的形式给出。

相关文章:

  • C# 视频监控系列(7):服务器端——封装API(下)(3)
  • 译《Understanding Microsoft Virtualization Solutions—From the Desktop to the Datacenter》-之序...
  • 方法自身实现异部调用和WinForm上图片切换效果
  • JAVA实现珠玑算法
  • 窗体控件visible属性问题
  • 状态栏信息来回滚动--js
  • C++ Exercises(二十)
  • Apache之CGI
  • 利用.htaccess文件对访问进行限制
  • gnu-make-doc
  • 在Web应用程序中使用AD来进行成员管理
  • 安装Windows Server 2008 企业版
  • IBM DS3200数据恢复手记,12块300GB sas raid5
  • windbg 命令
  • 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序(1-10)-- 推荐!
  • 分享一款快速APP功能测试工具
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • 07.Android之多媒体问题
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • android图片蒙层
  • FineReport中如何实现自动滚屏效果
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • JSDuck 与 AngularJS 融合技巧
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • 机器学习中为什么要做归一化normalization
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 世界上最简单的无等待算法(getAndIncrement)
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 以太坊客户端Geth命令参数详解
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • ionic异常记录
  • k8s使用glusterfs实现动态持久化存储
  • 回归生活:清理微信公众号
  • 容器镜像
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • #QT项目实战(天气预报)
  • (1)(1.11) SiK Radio v2(一)
  • (12)Hive调优——count distinct去重优化
  • (42)STM32——LCD显示屏实验笔记
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (十一)c52学习之旅-动态数码管
  • (译)2019年前端性能优化清单 — 下篇
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • .gitignore文件_Git:.gitignore
  • .NET Core Web APi类库如何内嵌运行?
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET简谈设计模式之(单件模式)
  • @Responsebody与@RequestBody
  • @RunWith注解作用