!!!!!!!!!!!!!!!!!!!!关于多文档视图的问题,请高手看看!!!!

zminhao 2003-06-26 10:53:32
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
if (!wndSplitter.CreateStatic(this, 1, 2)) return false;

//在这行动态创建了视图

if (!wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CBookView), CSize(0,0), pContext))
return false;

//if (!wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CSearch), CSize(0,0), pContext))
//return false;

DWORD dwf = CGfxOutBarCtrl::fDragItems|
CGfxOutBarCtrl::fEditGroups|
CGfxOutBarCtrl::fEditItems|
CGfxOutBarCtrl::fRemoveGroups|
CGfxOutBarCtrl::fRemoveItems|
CGfxOutBarCtrl::fAddGroups|
CGfxOutBarCtrl::fAnimation;

wndBar.Create(WS_CHILD|WS_VISIBLE, CRect(0,0,0,0), &wndSplitter,
wndSplitter.IdFromRowCol(0, 0), dwf);
wndBar.SetOwner(this);

imaLarge.Create(IDB_IMAGELIST, 32, 0, RGB(128,128,128));
imaSmall.Create(IDB_SMALL_IMAGELIST, 16, 0, RGB(0,128,128));

wndBar.SetImageList(&imaLarge, CGfxOutBarCtrl::fLargeIcon);
wndBar.SetImageList(&imaSmall, CGfxOutBarCtrl::fSmallIcon);

wndTree.Create(WS_CHILD|TVS_HASLINES|TVS_LINESATROOT|TVS_HASBUTTONS|TVS_SHOWSELALWAYS,
CRect(0,0,0,0), &wndBar, 1010);
wndTree.SetImageList(&imaSmall, TVSIL_NORMAL);

wndBar.SetAnimationTickCount(10);

wndBar.SetAnimSelHighlight(200);

wndBar.SetIfQueryRemove(true);


HTREEITEM htm = wndTree.InsertItem("1", 0,0);
HTREEITEM htm1 = wndTree.InsertItem("2", 1,1, htm);
wndTree.InsertItem("3", 1,1, htm);


wndBar.AddFolder("1", 0);
//wndBar.AddFolderBar("TreeBar", &wndTree);
wndBar.AddFolder("2", 1);
wndBar.AddFolder("3", 2);
wndBar.AddFolder("4", 3);


wndBar.InsertItem(0, 0, "11", 0, 0);
wndBar.InsertItem(0, 1, "12", 1, 0);
wndBar.InsertItem(0, 2, "13", 2, 0);

wndBar.InsertItem(1, 0, "21", 0, 0);
wndBar.InsertItem(1, 1, "22", 1, 0);
wndBar.InsertItem(1, 2, "23", 2, 0);
wndBar.InsertItem(1, 3, "24", 3, 0);

wndBar.InsertItem(2, 0, "31", 0, 0);
wndBar.InsertItem(2, 1, "32", 1, 0);
wndBar.InsertItem(2, 2, "33", 2, 0);

wndBar.InsertItem(3, 0, "41", 0, 0);
wndBar.InsertItem(3, 1, "42", 1, 0);
//wndBar.InsertItem(3, 2, "43", 2, 0);

wndBar.SetSelFolder(0);

CRect r;
GetClientRect(&r);

int w1 = r.Width()/5;
int w2 = r.Width()/4;

wndSplitter.SetColumnInfo( 0, w1, 0 );
wndSplitter.SetColumnInfo( 1, w2, 0 );

wndSplitter.RecalcLayout();

//return true;

return CMDIFrameWnd::OnCreateClient(lpcs, pContext);
}


long CMainFrame::OnOutBarNotify(WPARAM wParam, LPARAM lParam)
{
switch (wParam)
{
case NM_OB_ITEMCLICK:
// cast the lParam to an integer to get the clicked item
{
int index = (int) lParam;
CString cs, cs1;
cs1 = wndBar.GetItemText(index);
int iFloder = wndBar.GetSelFolder();
cs.Format("Clicked on %d Floder -> %d :: <%s>", iFloder, (int)lParam, cs1);
AfxMessageBox(cs);

(rect,NULL,RDW_INVALIDATE|RDW_UPDATENOW);

}
return 0;

}

这段代码是创建一个类似OUTLOOK的BAR,我想在响应在BAR的按钮上点击进显示相应的FORM,请问如何实现,我已经做好了几个FORM了.请大家帮帮忙,我在线等待
...全文
63 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zminhao 2003-06-28
  • 打赏
  • 举报
回复
UP
bigbluewhale 2003-06-28
  • 打赏
  • 举报
回复
up
JerryGR 2003-06-28
  • 打赏
  • 举报
回复
我看到给我的消息了

给我你的e-Mail。

我发给你一个例子:0
what2say3 2003-06-26
  • 打赏
  • 举报
回复
首先把你的核心问题‘提炼’出来;那有精神去读那一‘堆’。。。。。
zminhao 2003-06-26
  • 打赏
  • 举报
回复
郁闷!!!!!!!!!!!!!!!!!!!!!!!
JerryGR 2003-06-26
  • 打赏
  • 举报
回复
如果是这个问题,记得给分阿,我需要分数:)
JerryGR 2003-06-26
  • 打赏
  • 举报
回复
你的意思是不是要切换视图阿?

如果是,你只要当前视图的ID换成别的,然后隐藏,把你要显示的视图的ID设置成为m_wndSplitter.IDFromRowCol(..)(具体的函数名记不清了,你可以看看MSDN),然后显示就可以实现视图的切换了。
jvcit 2003-06-26
  • 打赏
  • 举报
回复
guan zhu
flyelfsky 2003-06-26
  • 打赏
  • 举报
回复
在case NM_OB_ITEMCLICK中根据iFolder进行切换
zminhao 2003-06-26
  • 打赏
  • 举报
回复
没人回,不是吧

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧