如题。
我先建了个dialog资源myDlgBar,关联了一个CDialogBar的类。在dialog上面添加了一个TreeCtrl控件,并关联了一个CTreeCtrl的对象(变量)。CDialogBar的对象和TreeCtrl的对象都放在mainframe里面。即使我没有myTreeCtrl.create(),但是在资源里面已经包含了TreeCtrl。所以我的CDialogBar能自动拖动,放置。但是大小总是treectrl资源的大小。怎么解决呢?刚接触MFC一个多月,好的API都不熟悉啊。

解决方案 »

  1.   

    重写CDialogBar类,自己处理WM_SIZE消息,在OnSize函数中SetWindowPos/MoveWindow()来调整CTreeCtrl的显示区域。
      

  2.   

    我把TreeCtrl的对象放在mainframe里面好呢,还是放在重写的CDialogBa类里面好呢?
      

  3.   

    印象中只有VCL组件有自动对齐的属性。
    在MFC或WIN32中,都应该自己处理。无非就是在ON_SIZE消息里调整一下子控件位置。
      

  4.   

    自己顶个,我发现CDialogBar类对象确实能在上下左右拖动,但是大小一直没变啊,创建时的属性是CBRS_LEFT|CBRS_FLYBY|
                                    CBRS_TOOLTIPS|CBRS_HIDE_INPLACE|CBRS_GRIPPER|CBRS_SIZE_DYNAMIC