Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.034 c
3-1080547756
Earlynn
2004-03-29 12:09
2004.04.25
Таблицы Paradox тормозят в ADO. Что не так?


14-1080788841
Kolyan
2004-04-01 07:07
2004.04.25
ASSEMBLER


3-1080648670
ЁПРСТ
2004-03-30 16:11
2004.04.25
ADOQuery пропускает первую запись запроса


7-1077726910
Phantomaz
2004-02-25 19:35
2004.04.25
Почему SetWindowsHookEx не пашет, если активно Dos-окно ?


8-1073496651
The xXx
2004-01-07 20:30
2004.04.25
Media Player





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский