Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mfc 如何使窗口始终显示在其他窗口的顶部?_Mfc - Fatal编程技术网

Mfc 如何使窗口始终显示在其他窗口的顶部?

Mfc 如何使窗口始终显示在其他窗口的顶部?,mfc,Mfc,在我的对话框中,我有一个丰富的编辑控件。在richeditcontrol中键入时,我显示了一个自动完成的列表框 我想在其他窗口顶部显示列表框,但我的列表框不完全可见,但它必须位于richedit控件内 我想在combobox中实现类似listbox的功能,它总是位于其他窗口的顶部 如何在其他窗口顶部显示列表框 我正在显示以下样式 DWORD nListStyle = WS_CLIPCHILDREN|WS_EX_TOPMOST|WS_CHILD |WS_VISIBLE|LBS_NOTIFY|WS_

在我的对话框中,我有一个丰富的编辑控件。在richeditcontrol中键入时,我显示了一个自动完成的列表框

我想在其他窗口顶部显示列表框,但我的列表框不完全可见,但它必须位于richedit控件内

我想在combobox中实现类似listbox的功能,它总是位于其他窗口的顶部

如何在其他窗口顶部显示列表框

我正在显示以下样式

DWORD nListStyle = WS_CLIPCHILDREN|WS_EX_TOPMOST|WS_CHILD |WS_VISIBLE|LBS_NOTIFY|WS_VSCROLL|WS_HSCROLL|WS_BORDER|
LBS_OWNERDRAWVARIABLE|LBS_HASSTRINGS| LBS_NOINTEGRALHEIGHT; 
m_ctrlListBox.Create(nListStyle , listBoxRect, this,IDC_LIST);

。您不需要一个“始终位于其他窗口顶部”的窗口。您需要一个@IInspectable-我无法在m_ctrlListBox.Create函数中使用WS_POPUP,我正在获取assertion.ASSERT((dwStyle&WS_POPUP)==0);解决方案很简单:使用
WS\u弹出窗口创建
CWnd
实例,创建
CListBox
实例作为
CWnd
的子实例。您可能还希望对
CWnd
使用
WS\u EX\u NOACTIVATE
,因此键盘焦点将保留在编辑控件上。@zett42-正如您所说,我创建了CWnd,其中包含WS\u POPUP和WS\u EX\u NOACTIVATE样式,并将CListBox实例作为CWnd的子对象。但在设置焦点之前,我无法键入CRichEditCtrl。在richedit控件的OnLButtonDown事件中,我正在销毁CWnd和CListBox,以便在我将焦点设置为CRichEditCTrl时它们都隐藏起来。