本文示例源代码或素材下载 工作之余,用VC作了一个小程序,是VC+SQL server模式的,程式内容比较简单,主要设及以下内容: 窗口如何分割; 多视图之间如何通信; 列表视图的 操作 及事件处理; 树形控件的 操作 及事件处理,利用递归根据数据库动态生成目录
本文示例源代码或素材下载
工作之余,用VC作了一个小程序,是VC+SQL server模式的,程式内容比较简单,主要设及以下内容:
一、窗口如何分割
切分窗口既适用于SDI应用程序,也适宜于MDI应用程序。它通常驻是以类 CSplitterWnd来表示,对 Windows 来说,CSplitterWnd 是一个真正的窗口,它完全占用框架窗口的客户区域而视图占用切分窗口的窗格区域。 动态切分与静态切分 动态切分允许用户须任何时候对窗口进行切分,用户既可以通过选取菜单也可以通过拖动滚动条中的切分框来进行切分。动态切分窗口使用的是一个视图类。 静态切分,当窗口第一次被创建时,窗格就已经被切他好了,它们不能再被改变。用户可以移动窗格边框,但此时不能再对窗口进行合并或再划分。静态切分窗口允许使用多个视图类,并且可以创建时对这些视图类进行配置。在静态切分窗口中,每个窗格都有自己的滚动条。 动态切分比较简单,不实用,下面看静态切分。
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
CRect rect;
GetClientRect(&rect);
m_wndSplitter1.CreateStatic(this,1,2);
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CClassTreeView),CSize(150,150),pContext);
m_wndSplitter2.CreateStatic(&m_wndSplitter1,
2,1,WS_CHILD|WS_VISIBLE,
m_wndSplitter1.IdFromRowCol(0,1));
m_wndSplitter2.CreateView(1,0,RUNTIME_CLASS(CDagDetialView),CSize(0,0),pContext);
m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CDagView),CSize(0,0),pContext);
m_wndSplitter2.SetRowInfo(0,rect.Height()/2,0);
return true;
//重载时不能调用基类的OnCreateClient()
}
以上是本程序DEMO使用的方法。关于切分详细信息,请查阅MSDN.
1 2 3 4 下一页