关于窗口与树形视图的冲突,请求解决办法,谢谢. 本帖最后由 dnyz520 于 2009-07-12 01:39:31 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你试试,在create后面加一句showwindow行不行? 为什么不直接用CTreeView呢??? 在OnSize里面重新排布窗口呢?例如,不一定符合你的要求,就是体现一下重新排下窗口内的控件。class CEditRegionWnd : public CDockablePane{public: CComboBox m_wndObjectCombo; CEditRegionWndToolBar m_wndToolBar; CMFCPropertyGridCtrl m_ctrlProList; CEditRegionList m_ctrlListCtrl; virtual void AdjustLayout(); static const int sc_nPropertyGridCtrl = 210;}void CEditRegionWnd::AdjustLayout(){ if (GetSafeHwnd() == NULL) { return; } CRect rectClient,rectCombo; GetClientRect(rectClient); m_wndObjectCombo.GetWindowRect(&rectCombo); int cyCmb = rectCombo.Size().cy; int cyTlb = m_wndToolBar.CalcFixedLayout(FALSE, TRUE).cy; m_wndObjectCombo.SetWindowPos(NULL, rectClient.left, rectClient.top, rectClient.Width(), 200, SWP_NOACTIVATE | SWP_NOZORDER); m_wndToolBar.SetWindowPos(NULL, rectClient.left, rectClient.top + cyCmb, rectClient.Width(), cyTlb + cyCmb, SWP_NOACTIVATE | SWP_NOZORDER); m_ctrlProList.SetWindowPos(NULL, rectClient.left, rectClient.top + cyTlb + cyCmb, rectClient.Width(), sc_nPropertyGridCtrl, SWP_NOACTIVATE | SWP_NOZORDER); m_ctrlListCtrl.SetWindowPos(NULL, rectClient.left, rectClient.top + cyTlb + cyCmb + sc_nPropertyGridCtrl, rectClient.Width(), (rectClient.Height() - (cyTlb + sc_nPropertyGridCtrl + cyCmb)), SWP_NOACTIVATE | SWP_NOZORDER);}void CEditRegionWnd::OnSize(UINT nType, int cx, int cy){ CDockablePane::OnSize(nType, cx, cy); AdjustLayout();} 算了,我老老实实用CTreeView得了. 线程方面的问题 求助: 客户端采用 VC+ADO 数据库SQL Server,当存储过程中创建虚拟表并插入一些相关数据,,,, VC 中怎样通过点击按钮 或 单击鼠标来画一些图? server程序的设计 求几个数字图像处理的好网站(中英都可) 关于对话框上嵌入对话框的问题!谢谢、! 多媒体视频点播系统,难题 类模板的头文件引用问题 MFC对话框中添加可拖动的工具栏 怎样将DIB文件格式转换为JPG文件格式 请教一个关于用户界面线程的问题! 在自定义对话框CTimerDlg类中开启CMapView类的定时器
例如,不一定符合你的要求,就是体现一下重新排下窗口内的控件。
class CEditRegionWnd : public CDockablePane
{
public:
CComboBox m_wndObjectCombo; CEditRegionWndToolBar m_wndToolBar; CMFCPropertyGridCtrl m_ctrlProList; CEditRegionList m_ctrlListCtrl; virtual void AdjustLayout(); static const int sc_nPropertyGridCtrl = 210;
}void CEditRegionWnd::AdjustLayout()
{
if (GetSafeHwnd() == NULL)
{
return;
} CRect rectClient,rectCombo;
GetClientRect(rectClient); m_wndObjectCombo.GetWindowRect(&rectCombo); int cyCmb = rectCombo.Size().cy;
int cyTlb = m_wndToolBar.CalcFixedLayout(FALSE, TRUE).cy; m_wndObjectCombo.SetWindowPos(NULL,
rectClient.left, rectClient.top, rectClient.Width(), 200,
SWP_NOACTIVATE | SWP_NOZORDER);
m_wndToolBar.SetWindowPos(NULL,
rectClient.left, rectClient.top + cyCmb, rectClient.Width(), cyTlb + cyCmb,
SWP_NOACTIVATE | SWP_NOZORDER);
m_ctrlProList.SetWindowPos(NULL,
rectClient.left, rectClient.top + cyTlb + cyCmb, rectClient.Width(), sc_nPropertyGridCtrl,
SWP_NOACTIVATE | SWP_NOZORDER);
m_ctrlListCtrl.SetWindowPos(NULL,
rectClient.left, rectClient.top + cyTlb + cyCmb + sc_nPropertyGridCtrl,
rectClient.Width(), (rectClient.Height() - (cyTlb + sc_nPropertyGridCtrl + cyCmb)),
SWP_NOACTIVATE | SWP_NOZORDER);
}void CEditRegionWnd::OnSize(UINT nType, int cx, int cy)
{
CDockablePane::OnSize(nType, cx, cy); AdjustLayout();
}