绑定菜单信息
XmlDocument
xmlDoc
=
new
XmlDocument()
xmlDoc.Load(Application.StartupPath
+
"\\config.xml")
XmlElement
XmlRoot
=
xmlDoc.DocumentElement
XmlNodeList
xmlNodeList
xmlNodeList
=
XmlRoot.SelectNodes("SQLCommand")
if
(xmlNodeList.Count
>
0)
{
Menu_Command.Items.Clear()//Menu_Command是一个System.Windows.Forms.ContextMenuStrip
Menu_Command.Items.Add("命令管理",
null,
new
EventHandler(命令管理ToolStripMenuItem_Click))//命令管理ToolStripMenuItem_Click是一个单击事件函数
ToolStripSeparator
tss1
=
new
ToolStripSeparator()
Menu_Command.Items.Add(tss1)
foreach
(XmlNode
xmlNode
in
xmlNodeList)
{
Menu_Command.Items.Add(xmlNode.FirstChild.InnerText,
null,
new
EventHandler(Menu_Command_Click))//添加单击事件。Menu_Command_Click是个单击函数事件
}
}
#endregion
pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(CMyScrollViewDoc),
RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口
RUNTIME_CLASS(CMyScrollViewView))这个函数将文档类视类和框架类结合在一起,这个是单文档的组织形式,所以在单文档中框架类始终没有改变,所以可以动态加载菜单;
pDocTemplate = new CMultiDocTemplate(IDR_questionTYPE,
RUNTIME_CLASS(CquestionDoc),
RUNTIME_CLASS(CChildFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CquestionView))而这个是多文档的组织形式,可以看到第三个参数变成了CChildFrame,而不是CMainFrame,第一个参数也有所改变看,所以每新建一个多文档就会对应一个CChildFrame,所以动态添加的菜单不会显示在CMainFrame上,多文档不共用框架类
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)