如何改变哪个"拆分条"的宽度呢,改变宽度后如何在里面创建一个按钮控件......;)
就像FOXMAIL主界面那样
是不是有点难度?
用VC++啊,不用DELPHI

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1690/1690426.xml?temp=.1182215
      

  2.   

    用CSplitterWnd类分割窗口,利用它的派生类的成员函数来改变宽度。动态创建控件其实和在对话框中的步骤一样,首先插入组件到工程中,再View->Resoruce Symbols,增加一个ID常量。重载CSplitterWnd类的OnInitDialog类,响应WM_CREATE消息。然后手工为新控件添加必要的事件消息处理程序和原型。别忘记添加事件映射表宏
      

  3.   

    feiniaoliang(飞鸟良) :
        你的问题解决了没有啊?
      

  4.   

    !!
    写一个CSplitterWnd的派生类
    在构造函数里写:
    m_cxSplitter = 10;
    m_cxSplitterGap = 10;
    这样就解决了宽度问题
      

  5.   

    问题一.
    关键是要自己重写一个派生于CSplitterWnd的派生类看这个更清楚些,里面'有2个方法,一个已经非常具体了:
    http://expert.csdn.net/Expert/topic/1366/1366536.xml?temp=.2911798
      

  6.   

    第二个问题就难办一点了,splitter里的滚动条好像是自己画出来的,要是你想在上面加控件的话,估计也要自己画才行。然后在lbuttondown中判断点击是否在你的控件区域内,然后作相应的处理。
      

  7.   

    我觉得我贴的那个贴子应该可以解决你的问题了呀!!关键就是要派生一个CSplitterWnd的一个子类嘛,然后去写OnDrawSplitter()这个函数,而且这个函数我觉得里面也写得很清楚了,难就难在你自己要去改写这个函数,去完成再上面画button的工作。
      

  8.   

    是的,谢谢各位啦~~~~~```
    我想如果不能在CSplitter里面创建一个控件的话,那么需要"分割条"变宽还有什么用处嘛?有的话也不大吧,我实在想不出来什么用处了.这样做行不行:
    我收现在资源里面创建一个DIALOG,设置一些控件,属性等
    然后在自己继承的CSplitter里面(合适的初始化函数里面)
    使用 m_p_mydialog=new CMyDialog(this);
    m_p_mydialog->Create(IDD_MYDIALOG,this);
    this是自己的CSplitter的类指针,这样在自己的CSPlistter里面创建了一个"子"dialog....
    不知道这样行不行?
      

  9.   

    当然了,dialog的一些属性等,比如窗口的大小要符合CSPLITTER的大小,这需要额外编写代码
    期待着,各位的指教~````