Office::_CommandBarButton - изображение произвольного размер
От: Аноним  
Дата: 04.06.05 15:29
Оценка:
Доброго времени суток!

Мне необходимо поместить кнопку (width=80) на собственный тулбар (outlook),
чтобы на кнопке на было изображение (80x16) и не было текста.
Применяю стиль для кнопки Office::msoButtonIcon, но при этом появляющееся
изображение искажается и приводится к размеру иконки (16x16).
Как поместить изображение без искажений?

Вот кусок кода создания кнопки:


CComQIPtr<Office::_CommandBarButton> spCmdButton(spNewBar);
ATLASSERT(spCmdButton);
 
//! Loading bitmap
HBITMAP hBmp =(HBITMAP)::LoadImage(_AtlModule.hInstance, 
MAKEINTRESOURCE(faceId),IMAGE_BITMAP,80,20, LR_LOADMAP3DCOLORS | LR_LOADTRANSPARENT );
 
// put bitmap into Clipboard
::OpenClipboard(NULL);
::EmptyClipboard();
::SetClipboardData(CF_BITMAP, (HANDLE)hBmp);
::CloseClipboard();
::DeleteObject(hBmp); 
 
spCmdButton->put_Width(80);
spCmdButton->put_Visible(VARIANT_TRUE); 
spCmdButton->put_Caption(caption); 
spCmdButton->put_Enabled(VARIANT_TRUE);
spCmdButton->put_TooltipText(tooltip); 
spCmdButton->put_Tag(tag); 
spCmdButton->put_Style(Office::msoButtonIcon); 
 
//! Pasting bitmap
spCmdButton->PasteFace(); 
spNewCmdBar->put_Visible(VARIANT_TRUE);


Помогите советом, пожалуйста.
Re: Office::_CommandBarButton - изображение произвольного ра
От: Elena_ Россия  
Дата: 04.06.05 19:10
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне необходимо поместить кнопку (width=80) на собственный тулбар (outlook),

А>чтобы на кнопке на было изображение (80x16) и не было текста.
А>Применяю стиль для кнопки Office::msoButtonIcon, но при этом появляющееся
А>изображение искажается и приводится к размеру иконки (16x16).
А>Как поместить изображение без искажений?

Вряд ли это возможно

см. How To Create a Transparent Picture For Office CommandBar Buttons Q288771

In order to remain compatible with current Office guidelines, the bitmap image you use for a custom CommandBarButton picture should be a 256-color device independent bitmap (DIB) no bigger than 16 x 16 pixels in size.
...
The image should be no bigger than 16 pixels wide and 16 pixels high.


Примерно то же говорится в
Button Bonanza: Part I (Undocumented Tricks to Add Icons to Your Applications)
Пользователь — друг программиста!
Re[2]: Office::_CommandBarButton - изображение произвольного
От: poison27  
Дата: 04.06.05 20:00
Оценка:
а как же тогда сделали в том же spamfighter'e?
Re[3]: Office::_CommandBarButton - изображение произвольного
От: Elena_ Россия  
Дата: 05.06.05 19:35
Оценка:
Здравствуйте, poison27, Вы писали:

P>а как же тогда сделали в том же spamfighter'e?


Свойство Picture у CommandBarButton — это IPictureDisp

Property Picture As IPictureDisp
Member of Office.CommandBarButton


Свойство Width у IPictureDisp — readOnly, но есть метод Render, может быть, им можно как-то воспользоваться?
Пользователь — друг программиста!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.