zoukankan      html  css  js  c++  java
  • CWnd::SetWindowPos的注意事项

    函数原型:

      BOOL CWnd::SetWindowPos
      (
      const CWnd* pWndInsertAfter, //插入的地方
      int x, //水平坐标
      int y, //垂直坐标
      int cx, //宽
      int cy, //高
      UINT nFlags //窗口定位标识
      );

    说明:

      这个函数能改变窗口的大小、位置和设置子窗口、弹出窗口或顶层窗口的排列顺序。 
      返回值:

      返回值BOOL类型,如果返回值非零表示成功,返回零表示失败。

    参数表:

      参数类型及说明 
      hWndInsertAfter HWND,置于hwnd前面的窗口句柄。这个参数必须是窗口的句柄或是下面的值之一:

        wndBottom 将窗口置于其它所有窗口的底部
        wndTop 将窗口置于它所有窗口的顶部
        wndTopMost 将窗口置于其它所有窗口的顶部,并位于任何最顶部窗口的前面。即使这个窗口不是活动窗口,也维持最顶部状态
        wndNoTopMost 将窗口置于其它所有窗口的顶部,并位于任何最顶部窗口的后面。如果这个窗口非顶部窗口,这个标记对该窗口并不产生影响 

    x: int,指定窗口新的X坐标

    Y: int,指定窗口新的Y坐标

    cx: int,指定窗口新的宽度

    cy: int,指定窗口新的高度

    nFlags: UINT,指定窗口状态和位置的标记。

    如下将窗口置顶,并且不改变窗口的位置与大小
    this->SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);

    注意:

    this->SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);

    这样的代码会造成不可预知的问题,因为SetWindowPos函数的第一个参数需要传入一个指针,

    如果传入空,会造成稀奇古怪的问题,正确的做法如下:

    this->SetWindowPos(NULL, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE|SWP_NOZORDER);

  • 相关阅读:
    Python之路-(js正则表达式、前端页面的模板套用、Django基础)
    Python之路-jQuery
    单例模式实际应用
    hibernate联合主键注解配置
    spring:ContextLoaderListener接口
    Struts2 校验
    Control character in cookie value, consider BASE64 encoding your value-Cookie保存中文出错[转]
    基于Cookie跨域的单点登录问题
    Spring:启动项目时加载数据库数据(总结)
    Oracle表分区[转]
  • 原文地址:https://www.cnblogs.com/2018shawn/p/14275113.html
Copyright © 2011-2022 走看看