手机
当前位置:查字典教程网 >编程开发 >C语言 >VC实现对话框窗口任意分割
VC实现对话框窗口任意分割
摘要:个人认为简单问题最好就是直接贴源代码,一看就明白,说来说去反而弄不清楚,那我就少废话了,自己看吧,注释很清楚。先来张图片1.新建一个MFC对...

个人认为简单问题最好就是直接贴源代码,一看就明白,说来说去反而弄不清楚,那我就少废话了,自己看吧,注释很清楚。

先来张图片

VC实现对话框窗口任意分割1

1. 新建一个MFC对话框程序MySplitterDlg。 再插入两个Dialog资源 ,这里一定要选择IDD_FORMVIEW类别的对话框,分别新建类CMyFormView0 和CMyFormView1,基类别选CDialog,一定要选择CFormView。

2. CMySplitterDlg中增加WM_CREATE的消息响应,编辑OnCreate()

int CMySplitterDlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialog::OnCreate(lpCreateStruct) == -1) return -1; // Because the CFRameWnd needs a window class, we will create a new one. I just copied the sample from MSDN Help. // When using it in your project, you may keep CS_VREDRAW and CS_HREDRAW and then throw the other three parameters. //需要注册窗口类 CString strMyClass = AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW, ::LoadCursor(NULL, IDC_ARROW), (HBRUSH) ::GetStockObject(WHITE_BRUSH), ::LoadIcon(NULL, IDI_APPLICATION)); // Create the frame window with "this" as the parent m_pMyFrame = new CFrameWnd; m_pMyFrame->Create(strMyClass,"", WS_CHILD, CRect(0,0,300,300), this); m_pMyFrame->ShowWindow(SW_SHOW); // and finally, create the splitter with the frame as the parent m_cSplitter.CreateStatic(m_pMyFrame,1, 2); //在Frame里切分视图窗口为1×2,就是一行两列 m_cSplitter.CreateView(0,0, RUNTIME_CLASS(CMyFormView0), CSize(100,100), NULL);//第一行一列 m_cSplitter.CreateView(0,1, RUNTIME_CLASS(CMyFormView1), CSize(100,100), NULL);//第一行二列 return 0; }

3. 在CMySplitterDlg::OnInitDialog()中显示Frame

int CMySplitterDlg::OnInitDialog() { CDialog::OnInitDialog(); GetWindowRect(&cRect); ScreenToClient(&cRect); m_pMyFrame->MoveWindow(&cRect); m_pMyFrame->ShowWindow(SW_SHOW); return TRUE; }

【VC实现对话框窗口任意分割】相关文章:

使用C++实现全排列算法的方法详解

用C++实现队列的程序代码

使用map实现单词转换的实例分析

C++如何通过ostringstream实现任意类型转string

如何用C++实现双向循环链表

C++实现基数排序的方法详解

C++实现strcmp字符串比较的深入探讨

C语言 实现N阶乘的程序代码

C/C++回调函数介绍

Assert(断言实现机制深入剖析)

精品推荐
分类导航