Задача такая: Есть клас (CPatternEdit), производный от CWnd, который описывает окно, в котором должен быть тулбар.
Ксть такая ф-ия:
BOOL CPatternEdit::Create(CWnd *pParentWnd,int x,int y)
{
...
...
CBrush* pBrush;
BOOL res;
pBrush=new CBrush();
pBrush->CreateSolidBrush(RGB(255,255,255));
HCURSOR hCursor = LoadCursor(NULL,IDC_ARROW);
LPCSTR ClassStr=AfxRegisterWndClass( CS_HREDRAW | CS_VREDRAW , hCursor , (HBRUSH)pBrush->m_hObject, 0 );
CreateEx(0 , ClassStr,NULL,/*WS_CHILD|*/WS_VISIBLE|WS_OVERLAPPEDWINDOW/*|WS_CLIPSIBLINGS*/, x,y,600,350,pParentWnd->m_hWnd,NULL);
m_ToolMain.Create(this,WS_CHILD | WS_VISIBLE | CBRS_TOP,/*AFX_IDW_TOOLBAR*/IDR_MAINFRAME);
m_ToolMain.LoadToolBar(IDR_PATTERNTOOLS);
m_ToolMain.EnableDocking(CBRS_ALIGN_TOP);
...
...
}
m_ToolMain объявлена как CToolBar...
В результате окно создается а тулбар нет...
Подскажите плз.
Посде создания тулбара пропишите ка вот это
m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD|WS_VISIBLE|CBRS_ALIGN_TOP| CBRS_TOP| CBRS_TOOLTIPS);
m_wndToolBar.LoadToolBar(IDR_POLY_EDIT_TOOLBAR);
CRect rcClientStart;
CRect rcClientNow;
GetClientRect(rcClientStart);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST,
0, reposQuery, rcClientNow);
CPoint ptOffset(rcClientNow.left - rcClientStart.left,
rcClientNow.top - rcClientStart.top);
CRect rcChild;
CWnd* pwndChild = GetWindow(GW_CHILD);
while (pwndChild)
{
pwndChild->GetWindowRect(rcChild);
ScreenToClient(rcChild);
rcChild.OffsetRect(ptOffset);
pwndChild->MoveWindow(rcChild, FALSE);
pwndChild = pwndChild->GetNextWindow();
}
// And position the control bars
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
(с)MSDN
Усё будет
Саша.
то есть не после а вместо....
Саша.