Здравствуйте.
Есть SDI-приложение, фрейм определен так:
class CMainFrame :
public CFrameWindowImpl<CMainFrame>,
public CMessageFilter,
public CIdleHandler,
public CUpdateUI<CMainFrame>
{
DECLARE_FRAME_WND_CLASS(NULL, IDR_MAINFRAME);
/*......*/
}
В ресурсах есть меню и тулбар с IDR_MAINFRAME. Меню создается на ура, тулбар нет. CreateSimpleToolBar возвращает не нулевое значение, тулбара не видно.
Создаю так:
CreateSimpleToolBar();
CreateSimpleToolBar(IDR_MAINFRAME); // пробовал и так
UIAddToolBar(m_hWndToolBar);
UISetCheck(ID_VIEW_TOOLBAR, 1);
Как создать ToolBar? Спасибо.
skipped
Код из моего проекта (с комбиком на тулбаре), подробностей не помню, 8-9 лет прошло...
HWND hWndToolBar = CreateMainToolBar();
...
CreateSimpleReBar(ATL_SIMPLE_REBAR_NOBORDER_STYLE);
AddSimpleReBarBand(hWndToolBar, NULL, TRUE);
...
UIAddToolBar(hWndToolBar);
HWND CMainFrame::CreateMainToolBar(void)
{
HWND hWndToolBar = CreateSimpleToolBarCtrl(m_hWnd, IDR_MAINFRAME, FALSE, ATL_SIMPLE_TOOLBAR_PANE_STYLE);
if (!hWndToolBar)
return (0);
CToolBarCtrl wndToolBar(hWndToolBar);
CClientDC dcClient(m_hWnd);
dcClient.SelectFont(::AtlGetDefaultGuiFont());
TEXTMETRIC tm;
dcClient.GetTextMetrics(&tm);
TBBUTTONINFO tbi;
tbi.cbSize = sizeof(TBBUTTONINFO);
tbi.dwMask = TBIF_STYLE | TBIF_SIZE | TBIF_BYINDEX;
tbi.fsStyle = TBSTYLE_SEP;
tbi.cx = (WORD) ((26 + 4) * tm.tmAveCharWidth);
wndToolBar.SetButtonInfo(6, &tbi);
CRect rcItem;
wndToolBar.GetItemRect(6, &rcItem);
rcItem.bottom = 16 * (tm.tmHeight + tm.tmExternalLeading);
m_wndComboSearch.Create(wndToolBar.m_hWnd, rcItem, NULL, CBS_AUTOHSCROLL | CBS_DROPDOWN | WS_TABSTOP | WS_CHILD | WS_VISIBLE | WS_VSCROLL, 0, IDC_SEARCHCOMBO);
m_wndComboSearch.SetFont(::AtlGetDefaultGuiFont());
m_wndComboSearch.LimitText(80);
return (hWndToolBar);
}