求助:一个特殊SDI界面

hacker_fzx 2006-10-10 12:48:27
需要做个特殊的SDI界面,窗口是被分割为左右两部分的,可以左右调整,左边为一个列表窗口(clistctrl);右边为一个标签窗口CTabCtrl,有几个属性页,需要两边能够进行通讯,比如选中列表中的某一项,右边的属性页中,显示跟该项相对应的值,不知道大家有没有做过类似的程序,或者有相应的例程,请给予指教。
...全文
275 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Victorianism 2006-10-11
  • 打赏
  • 举报
回复
分割社区楼上的已说了,至于右边的TabView你可以看看mynamelj(夏娃的诱惑)的blog中有.

http://blog.csdn.net/mynamelj/
Yao-debo 2006-10-11
  • 打赏
  • 举报
回复
不要意思,今天时间紧,我只能说,这个东西,你做一次,以后就会了
不过相互通信的时候有点麻烦,需要处理 好数据结构
shixinwenwu 2006-10-11
  • 打赏
  • 举报
回复
搂主不厚道,干嘛还不给分啊
gaopl_8278 2006-10-10
  • 打赏
  • 举报
回复
可以采用静态或动态分割的方法分割窗口.至于左右关联,发送消息,响应消息就OK了.自己写没时间,在网上消息通信的例子多的是,知道原理就行了.分割窗口的例子也很多,用CSplitterWnd()就可以分割了.
raymonzhao 2006-10-10
  • 打赏
  • 举报
回复
这种界面应该是比较简单的,就分割一下窗口,再在两个VIEW之间进行消息通信就可以了.
DentistryDoctor 2006-10-10
  • 打赏
  • 举报
回复
用CSplitterWnd实现分割,至于其它的,进一步来。
KeSummer 2006-10-10
  • 打赏
  • 举报
回复
最简单的做法就是用CFormView,然后直接拖控件就是了.
raymonzhao 2006-10-10
  • 打赏
  • 举报
回复
倒..例程来了.
shixinwenwu 2006-10-10
  • 打赏
  • 举报
回复
在CMainFrame里面实现这个就行了,m_wndSplitter 和m_wndSplitter2是CViewSplitWnd 类对象;CSpeedView,CGearView,CHeartView是自己另外创建的3个CView 类(基类),照这个改改就行了,别忘了包含头文件哦!!!

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
// create a splitter with 1 row, 2 columns
if (!m_wndSplitter.CreateStatic(this, 1, 2))
{
TRACE0("Failed to CreateStaticSplitter\n");
return FALSE;
}

// add the first splitter pane - the default view in column 0
if (!m_wndSplitter.CreateView(0, 0,
pContext->m_pNewViewClass, CSize(400, 0), pContext))
{
TRACE0("Failed to create first pane\n");
return FALSE;
}

// add the second splitter pane - which is a nested splitter with 2 rows
if (!m_wndSplitter2.CreateStatic(
&m_wndSplitter, // our parent window is the first splitter
3, 1, // the new splitter is 2 rows, 1 column
WS_CHILD | WS_VISIBLE | WS_BORDER, // style, WS_BORDER is needed
m_wndSplitter.IdFromRowCol(0, 1)
// new splitter is in the first row, 2nd column of first splitter
))
{
TRACE0("Failed to create nested splitter\n");
return FALSE;
}

// now create the two views inside the nested splitter
//int cyText = max(lpcs->cy - 70, 20); // height of text pane

if (!m_wndSplitter2.CreateView(0, 0,
RUNTIME_CLASS(CSpeedView), CSize(0, 150), pContext))
{
TRACE0("Failed to create second pane\n");
return FALSE;
}
if (!m_wndSplitter2.CreateView(1, 0,
RUNTIME_CLASS(CGearView), CSize(0, 150), pContext))
{
TRACE0("Failed to create third pane\n");
return FALSE;
}
if (!m_wndSplitter2.CreateView(2, 0,
RUNTIME_CLASS(CHeartView), CSize(0, 0), pContext))
{
TRACE0("Failed to create third pane\n");
return FALSE;
}

// it all worked, we now have two splitter windows which contain
// three different views
return TRUE;

}
hacker_fzx 2006-10-10
  • 打赏
  • 举报
回复
呵呵,先谢过各位的回答,期待例程的出现:)

15,979

社区成员

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

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