窗口显示的问题请教各位

ljyzc 2006-03-22 04:28:21
我用一个EXE去load 一个DLL,Dll里面有一个Dialog, 当EXE及Dialog都显示出来后,切换任务栏的任务,再回到这EXE时,只显示EXE的界面在顶部,而Dialog不在顶部.请问这是为什么?有何解决方法?在线等。
...全文
134 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lixiaosan 2006-03-22
  • 打赏
  • 举报
回复
GetForegroundWindow
ljyzc 2006-03-22
  • 打赏
  • 举报
回复
用什么函数来获取那个窗体是ACTIVE啊?
lixiaosan 2006-03-22
  • 打赏
  • 举报
回复
那就当exe为active时,马上使dlg为active
Bill4661 2006-03-22
  • 打赏
  • 举报
回复
使用SetWindowPos函数来实现,把Exe文件的对话框放到最底下。
ljyzc 2006-03-22
  • 打赏
  • 举报
回复
to lixiaosan
Dialog应该是和Exe的界面一起显示上最前面的,可现在只显示Exe的界面,不显示Dialog的界面。
Bill4661 2006-03-22
  • 打赏
  • 举报
回复
使用SetWindowPos函数来实现,把Exe文件的对话框放到最底下。
lixiaosan 2006-03-22
  • 打赏
  • 举报
回复
我的Dialog要DoModal(), 但我不想他显示出来

对话框开始即隐藏
响应WM_SHOWWINDOW
void CTest6Dlg::OnShowWindow(BOOL bShow, UINT nStatus)
{

if( GetStyle() & WS_VISIBLE ) {
CDialog::OnShowWindow(bShow, nStatus);
} else {
long Style = ::GetWindowLong(*this, GWL_STYLE);
::SetWindowLong(*this, GWL_STYLE, Style | WS_VISIBLE);
CDialog::OnShowWindow(SW_HIDE, nStatus);
}
}
lixiaosan 2006-03-22
  • 打赏
  • 举报
回复
只显示EXE的界面在顶部,而Dialog不在顶部.

什么意思
ljyzc 2006-03-22
  • 打赏
  • 举报
回复
还有一个问题,我的Dialog要DoModal(), 但我不想他显示出来,有什么办法可以解决,不能用无模式的对话框,因为在DLL里面消息机制好象不同,无模式的taborder都不能用,很不方便。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧