我设计了activeX控件,它由一个编辑框和一个组合框组成。
我正在尝试将编辑框放在组合框上,以便每当用户从组合框中选择任何项目时,它应该坐在编辑框中。所以我的编辑框应该覆盖组合框的编辑部分,只有组合框可以看到箭头按钮。
Isuue:每当我试图将鼠标光标移动到该控件上时,组合框就会出现在编辑框的前面。我已经让编辑框这样的设计只是掩盖了组合框,但只有当焦点回到组合框时才会正在采取组合框前面。
尝试过的方法:在我定义的一个函数中,我尝试了以下所有函数在组合框上创建编辑框。
1)BringWindowToTop
2)SetForegroundWindow
3)SetWindowPos
我的代码:
void DetermineWindowsShown()
{
m_edit.EnableWindow(m_bEnabled);
m_combo.EnableWindow(m_bEnabled);
//here only I tried all the diff function
m_edit.BringWindowToTop();
//m_edit.SetForegroundWindow();
//m_combo.SetWindowPos(&CWnd::wndBottom ,0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
}.
我正在调用DetermineWindowsShown许多地方,以便编辑框始终位于组合框上方。
答案 0 :(得分:0)
BringWindowToTop
通常用于MDI窗口。 SetForegroundWindow
用于主窗口。
您应该可以使用SetWindowPos
,将其应用于两者,而不只是一个:
m_combo.SetWindowPos(&CWnd::wndBottom, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
m_edit.SetWindowPos(&CWnd::wndTop, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);