Re: Undo Redo

создаешь сначала свой класс - контрол который все это умеет,
для начала тестируешь как он работает создавая его на любом диалоге,
если все нормально, то после этого делаешь манипуляции в
CMainFrame::OnCreate, а именно меняешь создание для m_wndToolBar,
если не получится напиши и я пришлю какой-нибудь пример.
Igor
e-mail: igrits***@m*****.com
-----Original MessageFrom: Sergey [mailto:sergey_r***@m*****.ru]
Sent: Friday, January 30, 2004 6:52 AM
To: comp.soft.prog.prog
Всем привет!
Кто-нибудь знает как сделать кнопки на Toolbar'е такие как в Visual Studio
Redo
и Undo - в отличие от обычных - иконок, они сделаны в виде окон по-моему
(если
верить Spy++). Плюс при нажатии там появляется окошко со списком последних
действий.
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru
Здравсвуйте !
Как контрол мелкософтовцы сделали чтобы вы@#$%ться, наверно.
Обычно можно обойтись установкой TBSTYLE_DROPDOWN стиля,
TBSTYLE_EX_DRAWDDARROWS - расширенного стиля тулбару и
TBSTYLE_DROPDOWN стиля кнопке.
Я обычно делаю свой класс тулбара. Вот реальный код :
BOOL CTextStyleToolBar::CreateEx(CWnd *pParentWnd, CFont *pControlFont)
{
if (!CToolBar::CreateEx(pParentWnd, TBSTYLE_FLAT | TBSTYLE_DROPDOWN,
WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER |
CBRS_TOOLTIPS | CBRS_SIZE_DYNAMIC) ||
!LoadToolBar(IDR_TEXT_STYLE_TOOLBAR))
return FALSE;
CToolBarCtrl &refToolBar = GetToolBarCtrl();
refToolBar.SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
CRect rc;
int nIndex = CommandToIndex(ID_TS_BACKGROUND_COLOR);
SetButtonStyle(nIndex, TBBS_BUTTON | TBSTYLE_DROPDOWN);
nIndex = CommandToIndex(ID_TS_TEXT_COLOR);
SetButtonStyle(nIndex, TBBS_BUTTON | TBSTYLE_DROPDOWN);
SetSizes(CSize(23, 22), CSize(16, 15));
Это я делал тулбар для текстового редактора.
У кнопок появляются такие же доп. кнопочки со стрелками как и у
undo/redo. Обработать нажатие на эту кнопку можно, отловив сообщение-
нотификацию в родительском окне, либо в этом же самом окне :
BEGIN_MESSAGE_MAP(CTextStyleToolBar, CToolBar)
ON_NOTIFY_REFLECT(TBN_DROPDOWN, OnDropDown)
END_MESSAGE_MAP()
void CTextStyleToolBar::OnDropDown(NMTOOLBAR *pNMToolBar, LRESULT *pResult)
{
if(pNMToolBar->iItem == ID_TS_TEXT_COLOR)
{
CRect rc;
GetItemRect(CommandToIndex(ID_TS_TEXT_COLOR), &rc);
m_wndTextColorPalWnd.TrackPopupPalette(rc.left, rc.bottom, this);
}
else if(pNMToolBar->iItem == ID_TS_BACKGROUND_COLOR)
{
MessageBox("text bk color");
}
}
--
С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: mailto:comp.soft.prog.prog--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru