Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Toolbar как ресурс   Найти похожие ветки 

 
Bless ©   (2004-02-20 18:08) [0]

Как загрузить toolbar, который есть в ресурсах?
Для всех ресурсов есть свои функции, а какая для тулбара?
Или с ним как-то нестандартно работают?


 
Игорь Шевченко ©   (2004-02-20 18:25) [1]

Вообще-то тулбара не может в ресурсе...Диалог может быть...Тогда для загрузки используется функция CreateDialog


 
Cobalt ©   (2004-02-21 14:14) [2]

Не, вообще-то он действительно лежит в ресурсах. Прям вместе с формой. И считывается сразу вместе с формой.


 
Bless ©   (2004-02-23 09:26) [3]

>Вообще-то тулбара не может в ресурсе...

Гм... Редактор ресурсов, что идет с визуал студио, позволяет сделать такой ресурс.

>И считывается сразу вместе с формой.

А у меня не считывается :( Если меню в ресурсы пихнуть, то считывается, а тулбар - нет. Меню, правда, в RegisterClassEx к форме привязывается. А тулбар как бы нигде.


 
Bless ©   (2004-02-23 10:32) [4]

А если все-таки тулбар загрузится (кажись, проблема в геометрии моих рук. Сейчас проверю), то как получить его хендл?


 
Cobalt ©   (2004-02-23 11:47) [5]

туллбар.хендл


 
Nick Denry ©   (2004-02-23 12:15) [6]

Лучше пользоваться ресурсами диалогов. Тогда можно создавать почти все. Так проще и нагляднее.


 
nikkie ©   (2004-02-23 12:47) [7]

>Гм... Редактор ресурсов, что идет с визуал студио, позволяет сделать такой ресурс.
все правильно, есть такой ресурс. но VS одновременно с ним добавляет ресурс BITMAP, в котором нарисованы сразу все кнопки. тулбар можно создать с помощью CreateToolbarEx - bitmap-ресурс там используется, а вот toolbar-ресурс - нет. да он и не особо полезен - слишком мало в нем информации, увы.


 
Игорь Шевченко ©   (2004-02-24 16:05) [8]

nikkie ©   (23.02.04 12:47)


> все правильно, есть такой ресурс

А тип у него какой ? (Похоже, я отстал от жизни)


 
nikkie ©   (2004-02-24 18:41) [9]

вот вырезка из rc-файла, сделанного стандартным MFC-визардом:
/////////////////////////////////////////////////////////////////////////////
//
// Toolbar
//

IDR_MAINFRAME TOOLBAR DISCARDABLE  16, 15
BEGIN
   BUTTON      ID_FILE_NEW
   BUTTON      ID_FILE_OPEN
   BUTTON      ID_FILE_SAVE
SEPARATOR
   BUTTON      ID_EDIT_CUT
   BUTTON      ID_EDIT_COPY
   BUTTON      ID_EDIT_PASTE
SEPARATOR
   BUTTON      ID_FILE_PRINT
SEPARATOR
   BUTTON      ID_APP_ABOUT
END


Resource Explorer показывает, что в откомпилированном exe-шнике присутствует ресурс типа "241" - видимо это он и есть.

в MSDN описание этого ресурса не наблюдается. специализированных апи для работы ним вроде нет. MFC с ним обходится вот так:
BOOL CToolBar::LoadToolBar(LPCTSTR lpszResourceName)
{
ASSERT_VALID(this);
ASSERT(lpszResourceName != NULL);

// determine location of the bitmap in resource fork
HINSTANCE hInst = AfxFindResourceHandle(lpszResourceName, RT_TOOLBAR);
HRSRC hRsrc = ::FindResource(hInst, lpszResourceName, RT_TOOLBAR);
if (hRsrc == NULL)
 return FALSE;

HGLOBAL hGlobal = LoadResource(hInst, hRsrc);
if (hGlobal == NULL)
 return FALSE;

CToolBarData* pData = (CToolBarData*)LockResource(hGlobal);
if (pData == NULL)
 return FALSE;
ASSERT(pData->wVersion == 1);

UINT* pItems = new UINT[pData->wItemCount];
for (int i = 0; i < pData->wItemCount; i++)
 pItems[i] = pData->items()[i];
BOOL bResult = SetButtons(pItems, pData->wItemCount);
delete[] pItems;

if (bResult)
{
 // set new sizes of the buttons
 CSize sizeImage(pData->wWidth, pData->wHeight);
 CSize sizeButton(pData->wWidth + 7, pData->wHeight + 7);
 SetSizes(sizeButton, sizeImage);

 // load bitmap now that sizes are known by the toolbar control
 bResult = LoadBitmap(lpszResourceName);
}

UnlockResource(hGlobal);
FreeResource(hGlobal);

return bResult;
}


 
Игорь Шевченко ©   (2004-02-24 19:01) [10]

nikkie ©   (24.02.04 18:41)

В принципе разумно, тип ресурса же может быть произвольный...И нестандартный в том числе. Это я промашку дал:)



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
1-1081522538
acrona
2004-04-09 18:55
2004.04.25
Работа с другими программами


3-1080224345
Крутыш
2004-03-25 17:19
2004.04.25
Всё о SyBase.


6-1074853790
jcrush
2004-01-23 13:29
2004.04.25
Тормозит прога, потоки....


3-1080544055
Nous Mellon
2004-03-29 11:07
2004.04.25
ADO и поставщики данных


3-1080301555
gedd
2004-03-26 14:45
2004.04.25
Зашита базы Access