我的CDialogBar为什么不能用鼠标拖动来改变大小?
CPMExploreBar是从CDialogBar集成过来的一个类,如图,我按照msdn上的“HOWTO: Make a Resizable Dialog Bar”那篇文章重载了它的CalcDynamicLayout虚函数,但是鼠标在拖动时仍然不能改变大小,哪位高手能够解决?请不要给我贴msdn上的文章,因为我都看过了
class CPMExploreBar:public CDialogBar{
DECLARE_DYNAMIC(CDialogBar)
public:
CPMExploreBar();
virtual ~CPMExploreBar();
afx_msg void OnSize(UINT nType, int cx, int cy);
BOOL Create(CWnd* pParentWnd, UINT nIDTemplate, UINT nStyle, UINT nID);
virtual CSize CalcDynamicLayout( int nLength, DWORD dwMode );
CSize m_sizeDocked;
CSize m_sizeFloating;
BOOL m_bChangeDockedSize;
protected:
DECLARE_MESSAGE_MAP()
}
class CMainFrame{
private:
CPMExploreBar m_wndExploreBar;
}
CMainFrame::OnCreate(...)
{
...
m_wndEditBar.Create(this, IDD_EDIT_BAR,WS_CHILD|WS_VISIBLE| CBRS_LEFT | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,IDD_EDIT_BAR);
...
}
class CPMExploreBar:public CDialogBar{
DECLARE_DYNAMIC(CDialogBar)
public:
CPMExploreBar();
virtual ~CPMExploreBar();
afx_msg void OnSize(UINT nType, int cx, int cy);
BOOL Create(CWnd* pParentWnd, UINT nIDTemplate, UINT nStyle, UINT nID);
virtual CSize CalcDynamicLayout( int nLength, DWORD dwMode );
CSize m_sizeDocked;
CSize m_sizeFloating;
BOOL m_bChangeDockedSize;
protected:
DECLARE_MESSAGE_MAP()
}
class CMainFrame{
private:
CPMExploreBar m_wndExploreBar;
}
CMainFrame::OnCreate(...)
{
...
m_wndEditBar.Create(this, IDD_EDIT_BAR,WS_CHILD|WS_VISIBLE| CBRS_LEFT | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC,IDD_EDIT_BAR);
...
}
...全文
相关推荐
MFC框架结构分析例程(CControlBar使用演示)
在我们的示例程序中,我们将创建一个CStatusBar对象,然后添加一些部分,比如显示鼠标位置、应用程序状态等。
VC 窗体中支持拖动的工具栏菜单实例.rar
该项目实现了在VC++窗体中支持拖动的工具栏菜单,核心功能包括自定义绘制带位图或渐变色的菜单项、支持子菜单样式控制,并结合MFC框架完成多文档界面管理。通过CBmpMenu类扩展标准菜单外观,提升用户
(vc7)仿windows画图代码 ImageEditor
本文介绍CADMMScrollView类,它继承自MFC的CScrollView,支持鼠标滚轮事件和自定义滚动行为。同时,CColorPaletteBar类继承自CDialogBar,用于创建颜色选择
一个左侧带树形菜单的VC 界面设计实例.rar
该项目实现了一个基于MFC框架的左侧树形菜单界面,采用CDialogBar派生类构建可停靠侧边栏,集成CTreeCtrl控件展示层级结构。具备鼠标交互、绘图响应与工具提示功能,适用于VC++开发环境下
仿IE右侧展开功能的窗口,VC 源代码.rar
核心类CIEBar继承自CDialogBar,支持动态创建CTreeCtrl并处理鼠标事件,适


界面
