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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |