在MFC怎么中设置窗口大小和位置?

 我来答
lll北冥有鱼
推荐于2019-08-14 · TA获得超过758个赞
知道答主
回答量:0
采纳率:93%
帮助的人:0
展开全部
  1. 使用SetWindowPos函数

    CWnd::SetWindowPosBOOL SetWindowPos( const CWnd* pWndInsertAfter, int x, int y, int cx, int cy,UINT nFlags )。返回值如果函数成功,则返回非零值;否则返回0。

    注意:这个窗口不是活动窗口。应用程序不能激活一个非活动窗口但同时又不把它带到Z轴次序的顶部。应用程序可以没有任何限制地改变活动窗口的Z轴次序。非顶层窗口可能拥有一个顶层窗口,但是反之则不成立。任何被顶层窗口拥有的窗口(例如对话框)都将自己变为顶层窗口,以确保所有被拥有的窗口位于它们的拥有者上方。在Windows 3.1或更新的版本中,可以将窗口移动到Z轴次序的顶部,并通过设置它们的WS_EX_TOPMOST风格而将之锁定在那里。

  2. 使用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的新高度。

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

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

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式