http://community.csdn.net/Expert/topic/3624/3624615.xml?temp=.6071588一个maindlg中加了一个成员m_dlg;
maindlg.oninidlg()
{
'''
m_Dlg.Create(CLogDlg::IDD, this);
m_Dlg.ShowWindow(TRUE);
m_Dlg.setfocus();
..
}这样,但是我想使弹出的logon窗口,处于激活状态,怎么实现。??
这个程序:就是一个登陆的界面,现在要求登陆弹出时,处于激活。但是他是个非模式窗口。??
maindlg.oninidlg()
{
'''
m_Dlg.Create(CLogDlg::IDD, this);
m_Dlg.ShowWindow(TRUE);
m_Dlg.setfocus();
..
}这样,但是我想使弹出的logon窗口,处于激活状态,怎么实现。??
这个程序:就是一个登陆的界面,现在要求登陆弹出时,处于激活。但是他是个非模式窗口。??
我帮你看看!注明帖子的URL!
Window Station and Desktop Functions
在BOOL CXXXApp::InitInstance()
{
.....
m_Dlg.Create(CChildTestDlg::IDD, this);
m_Dlg.ShowWindow(SW_SHOW);
//m_Dlg.SetFocus();
....
}
此时主对话框还没有创建,只有登陆对话框出现.
第二种,就是在你的主对话框的OnInitDialog()函数中,不过此时要采用模式对话框,
因为你在OnInitDialog()中如果采用非模式对话框,就是SetFocus()也没有用的,因为此时主对话框的OnInitDialog()函数还要继续运行,等到主对话框对象建立以后,焦点自然在主对话框上了,如果想用非模式,那就想办法等你的主对话框建立以后再将你m_dlg 对象SetFocus()。
在给你做demo,非模式对话框,如果试验成功,再告诉你怎么做
我这里测试可是通过的!!用的xp系统vc++6.0。上面说的第一种方法应该让主窗口也是非模式的对话框,先创建主窗口,然后创建login窗口
if ( FALSE == IsTopMost() )
{
SetWindowPos( HWND_TOPMOST,
0,
0,
0,
0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE );
//Start fix bug 125001 by daniel 2004/09/15
SetFocus();
}
{
'''
m_Dlg.Create(CLogDlg::IDD, this);
m_Dlg.ShowWindow(SW_SHOW);
m_Dlg.setfocus();
..
}