MFC对话框程序通过按钮弹出子对话框,如何对子对话框进行初始化

点击按钮,用dlg.DoModal()弹出子对话框,在子对话框中有CListControl控件,无法对其进行初始化。子对话类中已经添加了OnInitDialog()方法,... 点击按钮,用dlg.DoModal()弹出子对话框,在子对话框中有CListControl控件,无法对其进行初始化。子对话类中已经添加了OnInitDialog()方法,感觉没有执行这个方法,求解。
点击按钮事件代码:

void CMFCPaikeDlg::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码

CDialogEx::OnOK();
CDialog dlg(IDD_DIALOGCLASS);
dlg.DoModal();

}
子窗口类中的OnInitDialog()代码:

BOOL ClassEidt::OnInitDialog()
{
CDialogEx::OnInitDialog();
classCListctr.InsertColumn(0, _T("id"), LVCFMT_CENTER);
classCListctr.InsertColumn(0, _T("name"), LVCFMT_CENTER);

return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
展开
 我来答
爱笑的柯南推理
2017-07-08 · TA获得超过6192个赞
知道大有可为答主
回答量:6693
采纳率:65%
帮助的人:1184万
展开全部
你说的这种操作方法WORD当中有啊!!!!!它的“主控文档”功能就用实现啊!
在编辑一个长文档时,如果将所有的内容都放在一个文档中,那么工作起来会非常慢,因为文档太大,会占用很大的资源。用户在翻动文档时,速度就会变得非常慢。如果将文档的各个部分分别作为独立的文档,又无法对整篇文章作统一处理,而且文档过多也容易引起混乱。
使用Word 的主控文档,是制作长文档最合适的方法。主控文档包含几个独立的子文档,可以用主控文档控制整篇文章或整本书,而把书的各个章节作为主控文档的子文档。这样,在主控文档中,所有的子文档可以当作一个整体,对其进行查看、重新组织、设置格式、校对、打印和创建目录等操作。对于每一个子文档,我们又可以对其进行独立的操作。此外,还可以在网络地址上建立主控文档,与别人同时在各自的子文档上进行工作。
主控文档是子文档的一个“容器”。每一个子文档都是独立存在于磁盘中的文档,它们可以在主控文档中打开,受主控文档控制;也可以单独打开。创建主控文档的步骤如下:
(1)单击工具栏中的按钮,创建一个空文档。
(2)选择菜单中的菜单项,并切换到大纲视图下。此时工具栏自动激活,工具栏及各按钮的具体含义如图6-1 所示。
(3)输入文档的大纲,并用内置的标题样式对各级标题进行格式化。
(4)选定要拆分为子文档的标题和文本。注意选定内容的第一个标题必须是每个子文档开头要使用的标题级别。例如,所选内容中的第一个标题样式是“标题3”,那么在选定的内容中所有具有“标题3”样式的段落都将创建一个新的子文档。选定的方法是鼠标移到该标题前的空心十字符号,此时鼠标指针变成十字箭头,单击鼠标即可选定该标题包括的内容。

(5)单击工具栏中的按钮,原文档将变为主控文档,并根据选定的内容创建子文档,如图6-2 所示。可以看到,Word 把每个子文档放在一个虚线框中,并且在虚线框的左上角显示一个子文档图标,子文档之间用分节符隔开。

(6)把文件保存下来即可。Word 在保存主文档的同时,会自动保存创建的子文档,并且以子文档的第一行文本作为文件名。
注意:
如果文档中已经存在子文档,而且文档中的子文档处于折叠状态,那么按钮会无效。要使它有效,需要首先单击按钮。
在Word 2000 中,不但可以新建一个主控文档,而且可以将已有文档转换为主控文档。这样,用户就可以在以前工作的基础上,用主控文档来组织和管理长文档了。将已有文档转换为主控文档与创建空的主控文档基本类似,步骤如下:
(1)打开要转换为主控文档的已有文档。
(2)单击菜单中的菜单项,切换到大纲视图。
(3)通过使用内置标题样式或大纲级别建立主控文档的大纲,操作方法与创建主控文档时建立大纲的方法相同,可通过工具栏中菜单项所带的下拉列表来定义文本是标题或正文。
(4)选定要划分为子文档中的标题和文本,如果某些文本包含在一个标题下,那么在单击这个标题前的分级显示符号选定这个标题时,这些文本也会被同时选定,创建子文档后,这些文本也将包含在这个子文档中。
(5)单击工具栏中的按钮,创建子文档。
(6)把文件另存为别的文件名。
不管主控文档的文件名如何,每个子文档指定的文件名不会影响,因为它只是根据第一行的文本自动命名的。如果文件名相同,会自动在后面加上“1,2,…”来区别。

6.1.2 插入子文档
在主控文档中,可以插入一个已有文档作为主控文档的子文档。这样,就可以用主控文档将以前已经编辑好的文档组织起来,而且还可以随时创建新的子文档,或将已存在的文档当作子文档添加进来。例如,作者交来的书稿是以一章作为一个文件来交稿的,编辑可以为全书创建一个主控文档,然后将各章的文件作为子文档分别插进去。操作方法如下:
(1)打开主控文档,并切换到主控视图。
(2)如果子文档处于折叠状态,先单击工具栏上的按钮,以激活按钮。
(3)将光标定位在添加已有文档的地方,确保光标的位置在已有的子文档之间。如果将改变定位在某一子文档内,那么插入的文档也会位于这个子文档内。
(4)单击工具栏中的按钮,将弹出如图6-3 所示的对话框。
(5)在对话框的框的文件列表中找到所要添加的文件,然后单击按钮。
经过上述操作后,选定的文档就作为子文档插入到主控文档中,用户可以像处理其他子文档一样处理该子文档。

6.1.3 展开和折叠子文档
在打开主控文档时,将折叠所有子文档,也就是每个子文档都将如图6-4 所示的超级链接方式出现。单击链接点,就可以单独打开该子文档。

要在主控文档中展开所有的子文档,可以单击工具栏中的按钮,文档展开后,原来的按钮将变为按钮。再次单击按钮,子文档又将成为如图6-4 所示的折叠状态。
当文档处于展开状态时,如果要打开并进入该子文档,可以双击该子文档前面的图片,Word 会单独为该子文档打开一个窗口。

6.1.4 重命名子文档
在创建子文档时,Word 2000 会自动为子文档命名。此外当把已有的文档作为子文档插入到主控文档中时,该子文档用的名字就是文档原来的名字。如果用户为了便于记忆管理,可以为该子文档重命名。

注意:
不能用等程序或DOS 命令来对该子文档重命名或移动子文档,否则,主控文档将找不到并重新组织子文档。
可以按如下步骤对子文档进行重命名:
(1)打开主文档,并切换到主控文档显示状态。
(2)单击按钮折叠子文档。
(3)单击要重新命名的子文档的超级链接,打开该子文档。
(4)单击菜单中的菜单项,打开对话框。
(5)选择保存的目录,输入子文档的新文件名,单击按钮。
关闭该子文档并返回主控文档,此时会发现在主控文档中原子文档的文件名已经发生改变,而且主控文档也可以保持对子文档的控制。注意保存该主控文档即可完成对子文档的重命名。
在重新命名子文档后,原来子文档的文件仍然以原来的名字保留在原来的位置,并没有改变原来的文件名和路径。Word 只是将子文档文件以新的名字或位置复制了一份,并将主控文档的控制转移到新命名后的文档上。原版本的子文档文件仍保留在原来的位置,用户可以对原来的文件自由处理,删除或者移动都不影响主控文档。

6.1.5 重新排列子文档
在主控文档中,子文档是按次序排列的,而且这个次序也是整篇长文档中各部分内容的次序。如果要改变它们的次序,如要把第一节调整到第二节,第二节作为第一节,可以按如下步骤进行。
(1)打开并显示主控文档。
(2)如果子文档处于折叠状态,要首先展开子文档。
(3)如果要重新排列的子文档处于锁定状态,首先解除锁定。解除的方法参看6.1.7 节。
(4)单击子文档图标,选定要移动的子文档,例如,在图6-5 中选定的是第二节(5.1.2)。
(5)将子文档图标拖动到新的位置。在拖动过程中,Word 将用一条带箭头的横线代表被拖动的子文档,这条横线的所处的位置就是子文档拖动后的位置。将这条横线到达正确位置后再松开鼠标即可,如图6-5 所示。

完成上述操作后,被选定的子文档就会移到新的位置,从而实现了子文档的重排。

6.1.6 合并和拆分子文档
合并子文档就是将几个子文档合并为一个子文档。合并子文档的操作步骤如下:
(1)在主控文档中,移动子文档将要合并的子文档移动到一块,使它们两两相邻。
(2)单击子文档图标,选定第一个要合并的子文档。
(3)按住Shift 键不放,单击下一个子文档图标,选定整个子文档。
(4)如果有多个要合并在一起的子文档,重复步骤(3)。
(5)单击工具栏中的按钮即可将它们合并为一个子文档。在保存主文档时,合并后的子文档将以第一个子文档的文件名保存。
如果要把一个子文档拆分为两个子文档,具体步骤如下:
(6)在主控文档中展开子文档。
(7)如果文档处于折叠状态,首先展开;如果处于锁定状态,首先解除锁定状态。
(8)在要拆分的子文档中选定要拆分出去的文档,也可以为其创建一个标题后再选定,如图6-6 所示。

(9)单击工具栏中的按钮。被选定的部分将作为一个新的子文档从原来的子文档中分离出来,如图6-7 所示。

该子文档将被拆分为两个子文档,子文档的文件名由Word 自动生成。用户如果没有为拆分的子文档设置标题,可以在拆分后再设定新标题。

6.1.7 锁定主控文档和子文档
在多用户协调工作时,主控文档可以建立在本级硬盘上,也可以建立在网络盘上。合作可以共用一台计算机,也可以通过网络连接起来。如果某个用户正在某个子文档上进行工作,那么该文档应该对其他用户锁定,防止引起管理上的混乱,避免出现意外损失。这时其他用户可以也只能以只读方式打开该子文档,其他用户只可以对其进行查看,修改后不能以原来的文件名保存,直到解除锁定后才可以。
锁定或解除主控文档的步骤如下:
(1)打开主控文档。
(2)将光标移到主控文档中
(3)单击工具栏中的按钮。
此时主控文档自动设为只读,用户将不能对主控文档进行编辑。但可以对没有锁定的子文档进行编辑并可以保存。如果要解除主控文档的锁定,只需再将光标移到主控文档中,单击按钮即可。
要锁定子文档,同样要把光标移到该子文档中,然后单击工具栏中的按钮即可锁定该子文档。锁定的子文档同样不可编辑,即对键盘和鼠标的操作不反应,锁定后的子文档以图标标识,锁定后的主文档在文档中没有标识,但在标题栏中有两个字来标识。
解除子文档的锁定与解除主控文档的锁定方法相同。

6.1.8 在主控文档中删除子文档
如果要在主控文档中删除某个子文档,则可以先选定要删除的子文档,即单击该子文档前面的图标,然后按Delete 键即可。
从主控文档删除的子文档,并没有真的在硬盘上删除,只是从主控文档中删除了这种主从关系。该子文档仍保存在原来的磁盘位置上。

6.1.9 在子文档之间移动或复制文本或图形
在编辑长文档时,一个子文档经常会用到另一个子文档中的文本或图形。用户可以利用拖动的办法在两个子文档中进行移动或复制文档中的内容。如果文档在折叠状态,请首先展开子文档。用户可以直接在主控文档视图中移动或复制文档或图形,也可以切换到普通视图下进行,
如果文档很长,两个子文档距离比较长,直接拖动不方便,用户可以利用复制粘贴的方法进行即可。也可以把文档折叠起来,然后单击相应子文档的链接点,以另一个窗口打开子文档,再在这两个子文档中粘贴复制文本或图形即可。

6.1.10 将子文档转换为主控文档的一部分
当在主控文档创建或插入了子文档之后,每个子文档都被保存在一个独立的文件中。如果想把某个子文档转换成主控文档的一部分。步骤如下:
(1)选定要转换的子文档
(2)单击工具栏中的按钮。
(3)该子文档的外围虚线框和左上角的子文档图标消失,该子文档就变成主控文档的一部分。
...

建议你用“主控文档”作为关键字在百度搜一下,你将得到更多知识。
祝你成功!!!
山水阿锐
2015-04-09 · TA获得超过34.3万个赞
知道顶级答主
回答量:23.7万
采纳率:91%
帮助的人:3.2亿
展开全部
您好, 在子对话框上右击 选择虚函数 OnInitDialog 添加函数 编辑代码:

BOOL InputDlg::OnInitDialog()

{
CDialog::OnInitDialog();

// TODO: 在此添加额外的初始化
m_scrollbar1.GetDlgItem(IDC_SCROLLBAR1);
m_scrollbar1.SetScrollRange(0,100);
m_scrollbar1.SetScrollPos(25);
GetDlgItem(IDC_EDIT1)->SetWindowText(L"25");
m_scrollbar2.GetDlgItem(IDC_SCROLLBAR2);
m_scrollbar2.SetScrollRange(0,100);
m_scrollbar2.SetScrollPos(5);
GetDlgItem(IDC_EDIT2)->SetWindowText(L"5");

return TRUE;
}
追问
不对啊,我根本没有用scrollbar控件啊。问题是弹出的窗口,根本没有执行初始化的OnInitDialog() 函数
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式