GetWindowRect() GetClientRect() ScreenToClient() MoveWindow()

CWnd.GetWindowRect

参照坐标系:屏幕坐标系,原点为屏幕左上角(0,0)的位置

功能:取得调用窗口CWnd在屏幕坐标系下的RECT坐标

CWnd.GetClientRect

参照坐标系:CWnd窗口的客户区坐标系,原点为客户区左上角(0,0)的位置

功能:取得窗口在自己的客户区(不包括非客户区)坐标系下的RECT坐标,可以得到窗口的大小,而不能得到相对屏幕的位置

CWnd.ScreenToClient()

参照坐标系:CWnd窗口的客户区坐标系,原点为客户区左上角(0,0)的位置

功能:将屏幕上的rect坐标转换为窗口Cwnd下的客户区的坐标

MoveWindow

  函数功能:改变指定窗口的位置和大小.对顶窗口来说,位置和大小取决于屏幕的左上角;对子窗口来说,位置和大小取决于父窗口客户区的左上角.对于Owned窗口,位置和大小取决于屏幕左上角.

函数原型:BOOL MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint );

时间: 2024-08-29 16:42:38

GetWindowRect() GetClientRect() ScreenToClient() MoveWindow()的相关文章

GetClientRect()和GetWindowRect()

GetClientRect()   是得到客户区坐标系下客户区的RECT GetWindowRect()是得到屏幕坐标系下整个窗口的RECT GetSystemMetrics()是获得屏幕分辨率大小 根据不同参数: int width = GetSystemMetrics ( SM_CXSCREEN );  int height= GetSystemMetrics ( SM_CYSCREEN ); 分别获得屏幕的宽和高. int width = GetSystemMetrics ( SM_CXV

控件大小随窗体大小变化

MFC中当我们添加了很多控件后,布局就是一个很难控制的方面,当程序运行在不能的PC上就会有不一样的布局,如何解决呢方法很多,我第一次是自己算出控件的位置,然后按照比例缩放,但是方法很麻烦,还不易控制,后来一个同事用如下代码很容易实现,非常不错分享给大家: 1. *.h 添加消息 [cpp] view plain copy print? public: afx_msg void OnSize(UINT nType, int cx, int cy); void ReSize(void); POINT

CPropertySheet(属性单) CPropertyPage(属性页)

1.添加对话框资源,为对话框创建类,继承于CPropertyPage class CFirstPage : public CPropertyPage // FirstPage.cpp CFirstPage::CFirstPage() : CPropertyPage(CFirstPage::IDD) { m_psp.dwFlags |= PSP_DEFAULT|PSP_HIDEHEADER; } class CSecondPage : public CPropertyPage // SecondP

MFC 在对话框显示图片的多种方法(四种方法)

我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一个基于对话框的工程,名为Ttest. 对话框类为CTestDlg (一) 非动态载入图片. 方法1.先从最简单的开始,用picture 控件来实现. 步骤: 先在资源里Import一张图片,ID为IDB_BITMAP2 然后在对话框上添加一个picture控件,右键点击打开属性, 将type下拉框选择B

ToDoList

// ToDoListWnd.cpp : implementation file // #include "stdafx.h" #include "ToDoList.h" #include "ToDoListWnd.h" #include "ToolsCmdlineParser.h" #include "ToolsUserInputDlg.h" #include "Toolshelper.h&qu

VS对话框按钮贴图和Static控件自定义

软件开发中,为了让用户更喜欢使用我们的软件,除了具有良好的性能外,还需要美观的界面. 本文简单地介绍下对话框背景贴图和按钮贴图,以及Static控件自定义成各种Static效果. 首先贴个图,让大家看看效果 1.新建对话框应用程序 2.添加图片资源 3.背景贴图 重写OnPaint函数 void CDlgBmpTestDemoDlg::OnPaint() { CPaintDC dc(this); // 用于绘制的设备上下文 //绘制背景 CBitmap bitmap; bitmap.LoadBi

MFC对话框贴图

(一)非动态载入图片. 方法1.先从最简单的开始,用picture 控件来实现. 步骤: 先在资源里Import一张图片,ID为IDB_BITMAP2 然后在对话框上添加一个picture控件,右键点击打开属性, 将type下拉框选择BITMAP,紧跟着下面就出现一个Image下拉框, 拉开就会看到所有已经载入好的图片, 选择你要的图片.运行程序即可看到. 方法2.通过背景图 同样如上,先载入一张图片,ID为IDB_BITMAP2 TestDlg.h中 CBrush m_brBk;//在publ

CPropertySheet属性页的一些使用方法 .

CPropertySheet 继承一个新类 CMyPropSheet.接着便可以进行下面的各种操作: 隐藏属性页默认按钮隐藏掉Apply应用按钮:propsheet.m_psh.dwFlags |= PSH_NOAPPLYNOW;或隐藏掉Cancel取消按钮:CWnd *pWnd = GetDlgItem( IDCANCEL );pWnd->ShowWindow( FALSE ); 移动属性页按钮首先,要获取按钮的句柄,然后就可以象对待窗体一样处理它们了. 下面代码先隐藏掉Apply和Help铵

不用splitter控件 简单实现对mfc对话框的分割的方法

不用splitter控件  简单实现对mfc对话框的分割的方法 直接贴上源代码主要部分吧 这个是基于对话框的工程 进行对话框的分割实现 只是相应了三个消息函数,看一下就会明白的 我空间资源里边有现成的工程代码可以下载运行 .cpp 文件 [cpp] view plaincopy // spliteDlg.cpp : implementation file // #include "stdafx.h" #include "splite.h" #include &quo