对话框能不能加菜单栏和工具栏————————————? 我要做一个程序,因为程序运行的界面象一个带有菜单栏和工具栏的对话框。想问问对话框能不能加菜单栏和工具栏?如果不能,或者想在单文档的工作区显示一个类似对话框的东西,该怎么办呢?谢谢!!以前也问过,但是没人解答,拜托了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对话框 可以添加 菜单栏 只是不能简单用消息映射(UPDATE_COMMAND_UI)来处理界面问题(比如加一个小勾什么的) 得加一点东西才行~ 为什么不用基于FormView的SDI做框架呢,你所说的“单文档的工作区显示一个类似对话框的东西”就是Formview如果你还想要对话框上加菜单和工具条,看此文:http://www.vckbase.com/document/viewdoc/?id=265或许对你有帮助 http://blog.vckbase.com/flyingleaf/archive/2004/12/22/2234.html 谢谢二位的解答!程序的运行结果是在编辑区显示一些信息,有很多表格控件,和别的一些控件;编辑区不做输入用。菜单栏和工具栏则用做弹出一些对话框,做设置参数用。因为刚学vc,会用的东西很少。SDI也不会。你说的网址正在看,正是需要的,我先看看,谢谢! 可以,只要在对话框和工具条类中重载两个函数就行// TOOLBAR要重载的函数LRESULT CDlgToolBar::OnIdleUpdateCmdUI(WPARAM wParam, LPARAM){ if (IsWindowVisible()) { CFrameWnd *pParent = (CFrameWnd *)GetParent(); if (pParent) OnUpdateCmdUI(pParent, (BOOL)wParam); } return 0L;}// 对话框要重载的函数LRESULT CIdleDialog::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { SendMessageToDescendants(WM_IDLEUPDATECMDUI, (WPARAM)TRUE, 0, TRUE, TRUE); return CDialog::WindowProc(message, wParam, lParam);} 只要添加上面两个函数,程序就可以用消息映射(UPDATE_COMMAND_UI)来处理界面问题(比如加一个小勾什么的)了 对话框 可以添加 菜单栏,工具栏想在单文档的工作区显示一个类似对话框的东西可以选择继承 CFormView 看这里的例子:http://www.vckbase.com/document/viewdoc/?id=265 jmlt1983(Harper),xkit(喝口汤先)你们说的继承CFormView这个方法,具体怎么办呢?是不是建立文当时,在选择基类时选CFormView。麻烦说的详细些,谢谢! 建立文当时,在选择基类时选CFormView改的话,基类改为CFormView,在插入资源dialog->IDD_FORMVIEW,在从CFormView继承的类的声明中加入enmu{IDD=abc}(abc为IDD_FORMVIEW的ID),和构造函数;如:class CMyformView : public CFormView{...public: enum { IDD = IDD_FORM };...};CMyformView::CMyformView():CFormView(CMusicListView::IDD){...} 还要改消息映射,IMPLEMENT_DYNCREATE() 谢谢,继承以后基本满足要求,至于功能我还在编不太清楚,估计问题还不断有。上面老兄说得加入enmu{IDD=abc}是为什么,有什么作用,必须吗? 指的是文档生成后,要改成从CFormView继承话(比如说原先的基类是CView),这样改只是把原来从其它的View类继承来的类改成和建立工程时选择继承CFormView的类一样enmu{IDD=abc}是 插入资源dialog->IDD_FORMVIEW 所插入的IDD_FORMVIEW的 ID ,应该是与view进行关联,显示时就显示与该ID对应的IDD_FORMVIEW 请问在VC中如何用WebBrowser控件查找所打开的网页中的内容呢? 树型控件中如何用系统图标? 问一个简单问题:怎样让一个窗口置顶?就象QQ的登录界面那样,即使最小化所有窗口后该登录界面依然存在... 怎么让控件隐藏和显示 请问大虾如何以一定密度填充矢量图形? 高分求救:关于视频文件的问题 一数据结构的算法问题,大家来探讨探讨 为什么使用windows 的画图工具 将24位色的图片转化为256色的图象失真那么大? 真奇怪!!!!---状态栏!! 如何修改应用程序的标题? 我的程序编译出错,谁能指点一下 如何杀死一个进程
只是不能简单用消息映射(UPDATE_COMMAND_UI)来处理界面问题(比如加一个小勾什么的)
得加一点东西才行~
如果你还想要对话框上加菜单和工具条,
看此文:http://www.vckbase.com/document/viewdoc/?id=265
或许对你有帮助
因为刚学vc,会用的东西很少。SDI也不会。你说的网址正在看,正是需要的,我先看看,谢谢!
LRESULT CDlgToolBar::OnIdleUpdateCmdUI(WPARAM wParam, LPARAM)
{
if (IsWindowVisible())
{
CFrameWnd *pParent = (CFrameWnd *)GetParent();
if (pParent)
OnUpdateCmdUI(pParent, (BOOL)wParam);
}
return 0L;
}// 对话框要重载的函数
LRESULT CIdleDialog::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
SendMessageToDescendants(WM_IDLEUPDATECMDUI,
(WPARAM)TRUE, 0, TRUE, TRUE); return CDialog::WindowProc(message, wParam, lParam);
}
http://www.vckbase.com/document/viewdoc/?id=265
如:
class CMyformView : public CFormView
{
...
public:
enum { IDD = IDD_FORM };
...
};
CMyformView::CMyformView():CFormView(CMusicListView::IDD)
{
...
}
enmu{IDD=abc}是 插入资源dialog->IDD_FORMVIEW 所插入的IDD_FORMVIEW的 ID ,应该是与view进行关联,显示时就显示与该ID对应的IDD_FORMVIEW