加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 如何在MFC对话框中保持控件的Z顺序?

发布时间:2020-12-16 07:28:04 所属栏目:百科 来源:网络整理
导读:它开始让我疯狂,但我无法弄清楚如何在z顺序中保持子控件的位置. 在MFC对话框资源编辑器的设计时,我在底部有一个STATIC控件(CStatic的后代)(Tab键顺序为1),即.它与按钮,列表框等其他控件重叠. 在运行时,对话框处理WM_TIMER消息,在OnTimer处理程序中,移动了STA
它开始让我疯狂,但我无法弄清楚如何在z顺序中保持子控件的位置.
在MFC对话框资源编辑器的设计时,我在底部有一个STATIC控件(CStatic的后代)(Tab键顺序为1),即.它与按钮,列表框等其他控件重叠.

在运行时,对话框处理WM_TIMER消息,在OnTimer处理程序中,移动了STATIC控件:

void CTestMFCDlg::OnTimer(UINT_PTR nIDEvent)
{
  ...
  m_stMyStatic.SetWindowPos(&this->wndBottom,xpos,ypos,SWP_NOSIZE);
  ...
}

在调用SetWindowPos进行子级CStatic控件之后,无论我在第一个参数中传递什么,它都会在对话框中绘制其他控件.

知道如何将控制始终保持在Z-order的底部?

解决方法

答案很简单.我刚刚在SetWindowPos文档中忽略了一个标志.
为了防止z顺序更改,只需传递SWP_NOZORDER标志,因此函数调用应如下所示:

m_stMyStatic.SetWindowPos(NULL,SWP_NOSIZE | SWP_NOZORDER);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读