Форум: "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.036 c