关于CControlbar的问题.(请lixiaosan(小三) 、goodboyws(深夜不眠者)帮忙!!! )

hainanb 2006-04-06 08:36:34
目的:实现vc6.0的output。
方法:参照http://www.datamekanix.com/sizecbar/中的代码,

从CControlbar派生了个一个类 :MYCONTROLBAR,声明此类型变量m_wndControl 在Controlbar上添加一个CEdit 变量
m_wndEdit,代码如下:
////////编辑控件///////////
if(!m_wndEdit.Create(WS_VSCROLL|WS_CHILD|WS_VISIBLE|ES_AUTOVSCROLL|ES_MULTILINE|ES_WANTRETURN,CRect(0,0,0,0), &m_wndControl , 101))
return -1;
m_wndEdit.ModifyStyleEx(0,WS_EX_CLIENTEDGE);
问题:
程序运行后,只看到了controlbar, 却没有看到Edit.
在上述参考的代码中,它把m_wndEdit作为m_wndControl内部属性了,
请问如何从m_wndEdit的外部,利用Create添加到m_wndControl上。
...全文
196 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
hainanb 2006-04-06
to MVP:

搞定了,多谢两位!!!
回复
蒋晟 2006-04-06
Handle WM_SIZE
see http://www.codeproject.com/docking/dockview.asp
回复
lixiaosan 2006-04-06
大概看了一下。他的继承关系是

CMyBar -> CSizingControlBarG-> CSizingControlBar -> CControlBar

不知道中间有些什么处理,你再仔细看看
回复
hainanb 2006-04-06
不够可以加分!!!
回复
hainanb 2006-04-06
TO MVP:
www.vckbase.com里的一个例子中,它也是怎样设置的。并且,它的Controlbar也是派生的。怎么就可以Create出来,我的代码怎么就不可以?
回复
蒋晟 2006-04-06
CRect(0,0,0,0) means the control is not readable.

dialog bar and rebar are suggested.
回复
hainanb 2006-04-06
程序代码如下:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}

if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
if (!m_wndControl.Create(this,_T("For Test"),
CBRS_GRIPPER|WS_CHILD|WS_VISIBLE|CBRS_LEFT|CBRS_SIZE_DYNAMIC, ID_DOCKINGWINDOW))
{
TRACE0("Failed to create custom bar\n");
return FALSE; // fail to create
}
////////编辑控件///////////
if(!m_wndEdit.Create(WS_VSCROLL|WS_CHILD|WS_VISIBLE|ES_AUTOVSCROLL|ES_MULTILINE|ES_WANTRETURN,CRect(0,0,0,0), &m_wndControl, 101))
return -1;
m_wndEdit.ModifyStyleEx(0,WS_EX_CLIENTEDGE);
m_wndControl.SetBarStyle(m_DockingWnd.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_wndControl.EnableDocking(CBRS_ALIGN_ANY);
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
DockControlBar(&m_wndControl, AFX_IDW_DOCKBAR_BOTTOM);

return 0;
}
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2006-04-06 08:36
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……