一个窗口从继承CControlBar继承而来,创建时如何指定它的大小?另外程序关闭时如何取得它的位置大小?
Kaile 2005-08-18 12:18:35 有一个窗口,继承CControlBar,希望得到VC6中的output窗口的效果,现在创建时不知道如何指定它的大小,另外想程序关闭时取得它的位置和大小信息保存到注册表,下次启动恢复原样,该如何实现?
请看代码:
这是希望控制大小的窗口的OnCreate代码,窗口中只有一个listcontrol
int CGuiOutPut::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CGuiControlBar::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_TabSolExplorer.Create(WS_VISIBLE|WS_CHILD,CRect(0,0,0,0),this,0x9999))
return -1;
CFont m_Font;
m_Font.CreateStockObject (DEFAULT_GUI_FONT);
CRect rectClient (0, 0, lpCreateStruct->cx, lpCreateStruct->cy);
const DWORD dwStyle = LBS_NOINTEGRALHEIGHT | WS_CHILD | WS_VISIBLE | WS_HSCROLL | WS_VSCROLL;
m_listControl.Create(WS_CHILD|WS_VISIBLE|LVS_REPORT,CRect(0,0,1000,1000), &m_TabSolExplorer, 0);
m_listControl.SetFont (&m_Font);
m_listControl.SetOwner (this);
CRect rect;
m_listControl.GetClientRect(&rect);
LV_ITEM lvi;
TCHAR szItem[256];
TCHAR szCol[256];
lvi.mask = LVIF_TEXT;
m_TabSolExplorer.SetImageList(IDB_DBPROJECTS, 16,8, RGB (255, 0, 0));
m_TabSolExplorer.Addtab(&m_listControl,"当前步",6);
SetIcon(IDB_BITMAPHELP,16,5,RGB(255,0,0),3);
return 0;
}
以下是mainframe.cpp中的OnCreate代码
if (!m_OutControl.Create(_T("高级控制"),WS_CHILD | WS_VISIBLE, this, 0x997))
{
TRACE0("Failed to create m_OutControl\n");
return -1;
}
m_OutControl.SetBarStyle(m_OutControl.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
m_OutControl.EnableDocking(CBRS_ALIGN_ANY);
//m_OutControl.SetMenuContext(IDR_MENUTOOLBARS);
DockControlBar(&m_OutControl, AFX_IDW_DOCKBAR_RIGHT);
现在可以停靠在右边,但大小每次都是固定的,不能调整,晕死。
继承关系:
CGuiOutPut m_OutControl;
class CGuiOutPut : public CGuiControlBar
class GUILIBDLLEXPORT CGuiControlBar : public CControlBar
结贴快,给分多,顶者有分。