请教:关于非模态 对话框 我在一个 非模态 对话框里创建另一个 非模态 对话框,怎么后一个非模态对话框老是创建失败??用Create()时失败。还有,若我在一个 模态 对话框里创建一个 非模态 对话框,想激活这个 非模态对话框该怎么办??也就是说我想在这个 非模态对话框 里响应鼠标键盘事件等。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 see this,,can help you.http://www.codeproject.com/dialog/gettingmodeless.asphttp://www.codeproject.com/dialog/modelesschild.asphttp://www.codeproject.com/dialog/modelesssibling.asp Create()时失败_______贴代码看看, 返回值是什么? http://www.codeguru.com/dialog/dialogMcManus.shtml 1。我的第二个 非模态对话框是在第一个 非模态对话框 接收到一个消息后,在消息处理函数里面创建的 ,相关代码如下:LRESULT CDlgIdentify::OnPosChange(WPARAM wp,LPARAM lp){ ..... if(m_pCandiDlg!=NULL) { delete m_pCandiDlg; m_pCandiDlg=NULL; } m_pCandiDlg=new CDlgCandi(this,m_strCandi,m_nScore);//m_strCandi,m_nScore //是传到对话框构造函数的参数,分别是CString 和 int BOOL bCreated=m_pCandiDlg->Create(IDD_DLG_CANDI);//这句创建不成功, //pCandiDlg指向0 m_pCandiDlg->ShowWindow(SW_SHOW);}2。很奇怪,我在第一个 非模态对话框 里加了一个Button,在OnButton1() 却可以正确执行,请问这是为什么??void CDlgIdentify::OnButton1() { if(m_pCandiDlg!=NULL) { delete m_pCandiDlg; m_pCandiDlg=NULL; } CRect rc,rcDlg; this->GetWindowRect(&rc); m_pCandiDlg=new CDlgCandi(this,"01234567890223456789",80); BOOL b=m_pCandiDlg->Create(IDD_DLG_CANDI); m_pCandiDlg->ShowWindow(SW_SHOW); m_pCandiDlg->GetWindowRect(&rcDlg); m_pCandiDlg->MoveWindow(rc.left-10,rc.bottom-20,rcDlg.Width(),rcDlg.Height()); m_pCandiDlg->SetWindowPos(&wndTopMost ,0,0,0,0,SWP_SHOWWINDOW);}3。若我在一个非模态对话框 里成功创建了第二个 非模态对话框 ,想激活 第二个 非模态对话框 ,或者想在两个 非模态对话框 自由切换,该怎么做???用m_pCandiDlg->SetWindowPos(&wndTopMost ,0,0,0,0,SWP_SHOWWINDOW);似乎无效, CListbox自绘时item高度超过控件窗口高度导致rcItem被剪切 写了个pop协议的程序,为什么有写服务器可以,有些不行/ 【散分】顺便问个小问题。 求助:怎样才能在任意时候关闭整个程序啊? 17天后又生了个角,呵呵,高兴,大家进来接点分! 怎样设置注册表才能使实现IContextMenu的com对所有文件都有效?,急! 窗口怎么会起动两次。 tooltipctrl如何显示啊,那个函数?//在onchar消息里 如何将类型库文件(TLB)作为一个资源包含在组件DLL文件中. 簡單IE 把一个CBITMAP对象存成一个BMP的文件的问题. 寻找ADO免费打印控件
http://www.codeproject.com/dialog/gettingmodeless.asp
http://www.codeproject.com/dialog/modelesschild.asp
http://www.codeproject.com/dialog/modelesssibling.asp
_______
贴代码看看, 返回值是什么?
LRESULT CDlgIdentify::OnPosChange(WPARAM wp,LPARAM lp)
{
.....
if(m_pCandiDlg!=NULL)
{
delete m_pCandiDlg;
m_pCandiDlg=NULL;
}
m_pCandiDlg=new CDlgCandi(this,m_strCandi,m_nScore);//m_strCandi,m_nScore
//是传到对话框构造函数的参数,分别是CString 和 int
BOOL bCreated=m_pCandiDlg->Create(IDD_DLG_CANDI);//这句创建不成功,
//pCandiDlg指向0
m_pCandiDlg->ShowWindow(SW_SHOW);}2。很奇怪,我在第一个 非模态对话框 里加了一个Button,在OnButton1() 却可以正确执行,请问这是为什么??
void CDlgIdentify::OnButton1()
{
if(m_pCandiDlg!=NULL)
{
delete m_pCandiDlg;
m_pCandiDlg=NULL;
}
CRect rc,rcDlg;
this->GetWindowRect(&rc);
m_pCandiDlg=new CDlgCandi(this,"01234567890223456789",80);
BOOL b=m_pCandiDlg->Create(IDD_DLG_CANDI);
m_pCandiDlg->ShowWindow(SW_SHOW);
m_pCandiDlg->GetWindowRect(&rcDlg);
m_pCandiDlg->MoveWindow(rc.left-10,rc.bottom-20,rcDlg.Width(),rcDlg.Height());
m_pCandiDlg->SetWindowPos(&wndTopMost ,0,0,0,0,SWP_SHOWWINDOW);
}3。若我在一个非模态对话框 里成功创建了第二个 非模态对话框 ,想激活 第二个 非模态对话框 ,或者想在两个 非模态对话框 自由切换,该怎么做???
用m_pCandiDlg->SetWindowPos(&wndTopMost ,0,0,0,0,SWP_SHOWWINDOW);似乎无效,