对话框 如果我要在视图中放十六个对话框,该如何操作呀?如果我第一次要显示八个对话框,下次再显示十六个对话框,并且一次性排好,那又如何操作了?刚学VC没多久,请大侠们指点指点,谢谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用对话框指针的数组进行操作;pdlg->showwindow();显示 这么多对话框……多文档程序能不能满足要求呢?如果能满足的话,不妨试试多文档程序的。如果一定要用对话框的话,MoveWindow函数可以同时设置窗体的位置和大小,所以只需要计算好每一个对话框应该在的位置,然后用MoveWindow函数把它们移动过去,然后调用它们的ShowWindow函数进行显示就可以了。管理这些对话框的话,可以把这些对话框的指针放在一个vector里面(或者数组也可以,但是用起来没有vector方便)就可以了。 1.对话框要为非模态的,即你要创建对话框时调用Create函数2.显示的时候用ShowWindow(SW_SHOW),而不是DoModal;隐藏用ShowWindow(SW_HIDE)3.划分每个对话框的位置,分别移动窗口位置使用MoveWindow 哦,这是个好方法,但我想了下,是不是还可以自己创建一个窗口呀,在formview下调用,是否可行了,楼上的大侠指点下 //CDlg1为主窗体 //CDlg2为子窗体 BOOL CreateModeLessDlg(UINT dlgID) //创建无模式对话框 { CDlg2 * pDialog =new CDlg2 ; //可以任选一个对话框类来创建无模式对话框,最好不要用待创建对话框的父类来创建 ASSERT_VALID (pDialog) ; BOOL bResult = pDialog->Create( dlgID) ; pDialog->ShowWindow(1); ASSERT (bResult ) ; return bResult; } BOOL CDlg1::OnInitDialog() { CreateModeLessDlg(IDD_DIALOG2); //CDlg2 ID return TRUE; } void CDlg1::OnButton1() { PostMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0); //最大化主窗体 } BOOL CDlg1::OnInitDialog(){ CreateModeLessDlg(IDD_DIALOG2); //CDlg2 ID return TRUE; //} BOOL3CDlg1::OnInitDialog(){33333CreateModeLessDlg(IDD_DIALOG2);33333333333333//CDlg23ID333333return3TRUE;333333333333333333333333333333333//} 只要一个对话框模板就行了,定义十六个类对像,然后create对话框就行...用MoveWindow和ShowWindow排好就行. 单文档程序,切分, CSplitterWnd 网上一搜就一堆!具体实现我一下也说不清楚的CSplitterWnd 最多支持16 X 16 请下载我的"SimplestSDI.zip",可以显示16个图片,可以改个数. 大哥,你的这个SimplestSDI.zip例子,下下来,打不开,能否重传一个,文件和数据已破坏呀! 我这里"我的资源"上不去了,你要不忌讳给我一个Email地址我给你发去. 楼上的大侠,邮箱里没有收到你的信件呀,哎,不会是没有发送成功吧!邮箱是:[email protected](前面的三个字母是黑龙江拼音的前三个字母,你不会是发错了吧)有时间的话,再给我发份吧,谢了啊! 传输文件后缀名为.exe 的文件只能传送一点 请问定时器SetTimer能不能嵌套使用 Directshow IAMGraphBuilderCallback 继承类选择创建filter失败! 关于 win32控制台程序用ado访问sql server数据库 请问该如何设计此MFC 的控件呢? 新手问题 VC 调用Word的老问题 哪里有rose的ebook下载,多谢 请教网页重复提交信息 同一局域网中的计算机对外ip相同,那么QQ等软件是怎样知道数据发送到哪台机器的? 用CSplitterWnd在Dialog中分割窗体,用的是网上的代码。但分割后窗体显示不出来 用GDI+绘图并保存的问题!
pdlg->showwindow();显示
多文档程序能不能满足要求呢?如果能满足的话,不妨试试多文档程序的。如果一定要用对话框的话,MoveWindow函数可以同时设置窗体的位置和大小,所以只需要计算好每一个对话框应该在的位置,然后用MoveWindow函数把它们移动过去,然后调用它们的ShowWindow函数进行显示就可以了。
管理这些对话框的话,可以把这些对话框的指针放在一个vector里面(或者数组也可以,但是用起来没有vector方便)就可以了。
2.显示的时候用ShowWindow(SW_SHOW),而不是DoModal;隐藏用ShowWindow(SW_HIDE)
3.划分每个对话框的位置,分别移动窗口位置使用MoveWindow
//CDlg2为子窗体
BOOL CreateModeLessDlg(UINT dlgID) //创建无模式对话框
{
CDlg2 * pDialog =new CDlg2 ; //可以任选一个对话框类来创建无模式对话框,最好不要用待创建对话框的父类来创建
ASSERT_VALID (pDialog) ;
BOOL bResult = pDialog->Create( dlgID) ;
pDialog->ShowWindow(1);
ASSERT (bResult ) ;
return bResult;
}
BOOL CDlg1::OnInitDialog()
{
CreateModeLessDlg(IDD_DIALOG2); //CDlg2 ID
return TRUE;
}
void CDlg1::OnButton1()
{
PostMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0); //最大化主窗体
}
{
CreateModeLessDlg(IDD_DIALOG2); //CDlg2 ID
return TRUE; //
}
{
33333CreateModeLessDlg(IDD_DIALOG2);33333333333333//CDlg23ID3
33333return3TRUE;333333333333333333333333333333333//
}
用MoveWindow和ShowWindow排好就行.
具体实现我一下也说不清楚的
CSplitterWnd 最多支持16 X 16
邮箱是:[email protected](前面的三个字母是黑龙江拼音的前三个字母,你不会是发错了吧)
有时间的话,再给我发份吧,谢了啊!