用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小 vb movewindow

用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置。

void MoveWindow(int x,int y,int nWidth,int nHeight);

void MoveWindow(LPCRECT lpRect);

第一种用法需给出控件新的坐标和宽度、高度;

第二种用法给出存放位置的CRect对象;

例:

CWnd *pWnd;

pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT1为控件ID号

pWnd->MoveWindow( CRect(0,0,100,100) ); //在窗口左上角显示一个宽100、高100的编辑控件

SetWindowPos()函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:

BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);

第一个参数我不会用,一般设为NULL;

x、y控件位置;cx、cy控件宽度和高度;

nFlags常用取值:

SWP_NOZORDER:忽略第一个参数;

用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小 vb movewindow
SWP_NOMOVE:忽略x、y,维持位置不变;

SWP_NOSIZE:忽略cx、cy,维持大小不变;

例:

CWnd *pWnd;

pWnd = GetDlgItem( IDC_BUTTON1 ); //获取控件指针,IDC_BUTTON1为控件ID号

pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按钮移到窗口的(50,80)处

pWnd = GetDlgItem( IDC_EDIT1 );

pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); //把编辑控件的大小设为(100,80),位置不变

pWnd = GetDlgItem( IDC_EDIT1 );

pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); //编辑控件的大小和位置都改变

以上方法也适用于各种窗口。

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

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

参数

hWnd指定了窗口的句柄

x指定了CWnd的左边的新位置。

y指定了CWnd的顶部的新位置。

nWidth指定了CWnd的新宽度。

nHeight指定了CWnd的新高度。

bRepaint指定了是否要重画CWnd。如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。如果这个参数为FALSE,则不会发生任何类型的重画操作。这应用于客户区、非客户区(包括标题条和滚动条)和由于CWnd移动而露出的父窗口的任何部分。当这个参数为FALSE的时候,应用程序必须明确地使CWnd和父窗口中必须重画的部分无效或重画。

MoveWindow给窗口发送WM_WINDOWPOSCHANGING,WM_WINDOWPOSCHANGED,WM_MOVE,WM_SIZE和WM_NCCALCSIZE消息MoveWindow()的两个重载函数

void CWnd::MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE );

void CWnd::MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE );

参数

x指定了CWnd的左边的新位置。

y指定了CWnd的顶部的新位置。

nWidth指定了CWnd的新宽度。

nHeight指定了CWnd的新高度。

bRepaint指定了是否要重画CWnd。如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。如果这个参数为FALSE,则不会发生任何类型的重画操作。这应用于客户区、非客户区(包括标题条和滚动条)和由于CWnd移动而露出的父窗口的任何部分。当这个参数为FALSE的时候,应用程序必须明确地使CWnd和父窗口中必须重画的部分无效或重画。

lpRectCRect对象或RECT结构,指定了新的大小和位置。说明这个函数改变窗口的位置和大小。对于顶层的CWnd对象,x和y参数是相对于屏幕的左上角的。对于子对象,它们是相对于父窗口客户区的左上角的。

MoveWindow函数发送一条WM_GETMINMAXINFO消息。处理这个消息时,CWnd得到一个改变最大和最小的窗口缺省值的机会。如果传递给MoveWindow成员函数的参数超过了这些值,则在WM_GETMINMAXINFO处理函数中可以用最小或最大值来代替这些值。

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/49299.html

更多阅读

round函数怎么用 精 java round函数怎么用

round函数怎么用 精——简介round函数通常用于四舍五入求值,通常函数中会传入两个参数,第一个参数是要四舍五入的数字。第二个参数就是位数,按此位数对第一个参数进行四舍五入。round函数使用的范围很广,下面就跟随小编一起来看看round

孕妇用什么牌子的橄榄油好,孕妇橄榄油的功效 橄榄油功效

孕妇用什么牌子的橄榄油好,孕妇橄榄油的功效——简介孕妇用什么牌子的橄榄油好?可供食用的高档橄榄油是用初熟或成熟的油橄榄鲜果通过物理冷压榨工艺提取的天然果油汁,是世界上唯一以自然状态的形式供人类食用的木本植物油。橄榄油在

被芯类的洗涤方法 兔绒包芯纱洗涤方法

被芯类的洗涤方法亲,不要忽视了床品‘芯’的重要哦!被子的洗涤,直接影响到被子的使用寿命,甚至有些被子是完全不能进行水洗的,那么针对各种被子的特点,我们应该采用哪些洗涤的方法和洗涤时的注意事项呢?相信看了下面的内容,会让您对被子的

Crect的成员函数 类的静态成员函数

CRect类(矩形类)无基类【说 明】CRect类与Windows系统中表示矩形RECT结构相似,并且它还提供了操作RECT结构的成员函数。在传递LPRECT,LPCRECT或RECT结构作为参数的任何地方,都可以传递CRect类的对象。注意,这个类是从tagRECT结构派

声明:《用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小 vb movewindow》为网友帥气初然分享!如侵犯到您的合法权益请联系我们删除