⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_48727.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:48727 发表者:WoodLee 发表日期:2003-08-03 00:55:55
<br>主题:赐教:关于CDialogBar的使用(特急!夜不能寐!!!)
<br>内容:以前使用CDialogBar是这样的:<BR>1、在CMainFrame中定义CDialogBar m_wndDlgBar;<BR>2、在CMainFrame::Create中执行:m_wndDlgBar.Create(this,IDD_MY_DLG,BRS_TOP,ID_MYDLGBAR );其中,IDD_MY_DLG就是我的对话框模板。<BR>这样就可以使用了。<BR><BR>但是我现在有一个CEdit的扩展类CMyEdit想在此对话框中使用。一般的如果不用CDialogBar而使用CDialog派生类或CFormView,都可以如下做:<BR>1、用ClassWizard定义变量CEdit与IDC_MYEDIT关联;即定义CEdit m_Edit;<BR>2、将CEdit m_Edit 改为 CMyEdit m_Edit;<BR>这样的话m_Edit就可以任意使用了。<BR><BR>但是使用CDialogBar却没有机会让我定义这样的变量!所以对话框中只能使用VC内部的控件!<BR><BR>哪位高手能给于指点一二,不胜感激!<BR><BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:金鱼王 回复日期:2003-08-03 08:58:32
<br>内容:能将源码放上来吗?我帮你修改!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:hurtmanzc 回复日期:2003-08-03 17:13:24
<br>内容:你好!金鱼王,又见面了!<BR> 看一下我的解决方案:<BR>1.新建一个单文档工程DialogBarDemo;<BR>2.加入对话框摸板IDD_DIALOG_BAR,并加入编辑框IDC_EDIT;<BR>3.利用ClassWizard加入类CMyEdit,基类为CEdit,加入你需要的功能;<BR>4.编辑CMainFrame::OnCreate()如下:<BR>int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)<BR>{<BR> if (CFrameWnd::OnCreate(lpCreateStruct) == -1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return -1;<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR> if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD |<BR> WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to create toolbar\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;return -1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// fail to create<BR>&nbsp;&nbsp;}<BR><BR>&nbsp;&nbsp;if (!m_wndStatusBar.Create(this) ||<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;!m_wndStatusBar.SetIndicators(indicators,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sizeof(indicators)/sizeof(UINT)))<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to create status bar\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;return -1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// fail to create<BR>&nbsp;&nbsp;}<BR><BR>// TODO: Delete these three lines if you don't want the <BR>//toolbar to&nbsp;&nbsp;be dockable<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);<BR>&nbsp;&nbsp;&nbsp;&nbsp;EnableDocking(CBRS_ALIGN_ANY);<BR>&nbsp;&nbsp;&nbsp;&nbsp;DockControlBar(&amp;m_wndToolBar);<BR>&nbsp;&nbsp;&nbsp;&nbsp;//创建对话框条<BR>&nbsp;&nbsp;if (!m_wndDialogbar.Create(this, IDD_DIALOG_BAR,<BR> CBRS_LEFT | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_HIDE_INPLACE,<BR>&nbsp;&nbsp;&nbsp;&nbsp;ID_VIEW_DIALOG_BAR))//ID_VIEW_DIALOG_BAR是菜单命令<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ID,用于显示或隐藏对话框条<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TRACE0("Failed to create dialog bar<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_wndDialogbar\n");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return -1;&nbsp;&nbsp;&nbsp;&nbsp;// fail to create<BR>&nbsp;&nbsp; }<BR><BR>&nbsp;&nbsp; m_wndDialogbar.EnableDocking(CBRS_ALIGN_LEFT |<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CBRS_ALIGN_RIGHT);<BR>&nbsp;&nbsp; EnableDocking(CBRS_ALIGN_ANY);<BR>&nbsp;&nbsp; DockControlBar(&amp;m_wndDialogbar);<BR>&nbsp;&nbsp; //下面这句最关键!<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_MyEdit.SubclassDlgItem(IDC_EDIT, &amp;m_wndDialogbar);<BR>&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;return 0;<BR>}<BR>5.在菜单资源“View”下加入“对话框条”命令,id为ID_VIEW_DIALOG_BAR。<BR>6.在CMainFrame类的消息映射部分手工加入以下两行,以处理菜单命令<BR>ID_VIEW_DIALOG_BAR。<BR>&nbsp;&nbsp;&nbsp;&nbsp; ON_COMMAND_EX(ID_VIEW_DIALOG_BAR, OnBarCheck)<BR>&nbsp;&nbsp;&nbsp;&nbsp; ON_UPDATE_COMMAND_UI(ID_VIEW_DIALOG_BAR, <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OnUpdateControlBarMenu)<BR>&nbsp;&nbsp;注意要加在<BR>&nbsp;&nbsp;&nbsp;&nbsp;//{{AFX_MSG_MAP(CMainFrame)<BR>&nbsp;&nbsp;&nbsp;&nbsp;ON_WM_CREATE()<BR>&nbsp;&nbsp;&nbsp;&nbsp;//}}AFX_MSG_MAP<BR>外边。<BR>7.编译!<BR>试一试,满意不?<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hurtmanzc 回复日期:2003-08-03 17:18:26
<br>内容:补充一句:<BR>第三步之后,还需为CMainFrame加入两个成员变量:<BR>protected:<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDialogBar m_wndDialogbar;<BR>&nbsp;&nbsp;&nbsp;&nbsp;CMyEdit m_MyEdit;<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -