急问这个问题了啊: 我在Mainframe.h中定义 CSplitterWnd m_wndSplitter1; , 然后在.cpp 文件里面的
OnCreateClient 中如下分解窗口: if(m_wndSplitter1.CreateStatic(this,1,2)==NULL)
return FALSE;
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CLeftView),CSize(500,100),pContext);
m_wndSplitter1.CreateView(0,1,RUNTIME_CLASS(CRightView1),CSize(500,100) ,pContext); 分解窗口的确没有问题,的确可以成功分解窗口, 但是,由于会改变窗口大小,所以需要在OnSize 里面动态调整这两个窗口的大小,我这样做: CRect rect;
GetWindowRect(rect);
m_wndSplitter1.SetColumnInfo(0, (rect.Width())/2, 10);
m_wndSplitter1.SetColumnInfo(1, (rect.Width())/2, 10);
m_wndSplitter1.RecalcLayout();按道理而言,应该时没有问题的才对啊,不过,这样,一运行马上就报错了。完全不明白这个是啥子原因哟, 请大侠们指教了啊。 不胜感激啊。
OnCreateClient 中如下分解窗口: if(m_wndSplitter1.CreateStatic(this,1,2)==NULL)
return FALSE;
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CLeftView),CSize(500,100),pContext);
m_wndSplitter1.CreateView(0,1,RUNTIME_CLASS(CRightView1),CSize(500,100) ,pContext); 分解窗口的确没有问题,的确可以成功分解窗口, 但是,由于会改变窗口大小,所以需要在OnSize 里面动态调整这两个窗口的大小,我这样做: CRect rect;
GetWindowRect(rect);
m_wndSplitter1.SetColumnInfo(0, (rect.Width())/2, 10);
m_wndSplitter1.SetColumnInfo(1, (rect.Width())/2, 10);
m_wndSplitter1.RecalcLayout();按道理而言,应该时没有问题的才对啊,不过,这样,一运行马上就报错了。完全不明白这个是啥子原因哟, 请大侠们指教了啊。 不胜感激啊。
解决方案 »
- opengl 对象放大后出现问题
- 关于DLL中的问题
- 请大家帮帮我,关于HRGN的
- 我怎样才能修改工程名称??急急急!!
- 我想在程序中动态的改变CLISTCTRL控件的列表头中的文本,怎么改?谢谢指教,在先等
- 在局域网内我想测试能否与某台服务器建立连接,请问我该怎么做?要用哪个API函数?
- 如何将CComboBox中的编辑属性取消
- delphi中要想定义一个整个工程文件中可以访问的变量怎样做才好?(说者有分)
- 我想开发一个剪贴板工具,请教各位如何监视剪贴板的变化?(windows是不是会产生一个消息的?)
- 高手解答!
- 准备用TCP做个同时连接多个Client的文件传输服务器,想问下要怎么规划数据包的格式
- 请问有没有把BMP转成JPEG好的算法,要求压缩后图象质量高,所占容量小.
解决办法就是在OnSize里判断一下分割窗口是否已创建好,只有已创建好时才调整大小。
if(hWnd1==NULL||!IsWindow(hWnd1))
return; CRect rect;
GetClientRect(&rect);
m_wndSplitter1.SetColumnInfo(0, (rect.Width()-234)/2, (rect.Width()-234)/2);
m_wndSplitter1.SetColumnInfo(1, (rect.Width()-234)/2, (rect.Width()-234)/2);
m_wndSplitter1.RecalcLayout(); 即使是加上上面的判断是否已经创建好的语句,但是还是错误,不知道是什么原因了。