Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Кнопка с прозр. рисунком.

258
15 апреля 2003 года
SergeySV
1.5K / / 19.03.2003
Вот, что-то никак не могу сделать в VBE (например под Excel) кнопочку с рисунком как сам Excel делает, чтобы фон у нее был прозрачный. Скоко не щупаю этот CommandButton (вместе с Image) ничего пока не получается. Использовать сторонние контролы не хотелось бы, потому как код должен спокойно работать на компах со стандартным офисом (у каждого из которых свое цветовое оформление окошек - поэтому весь геморой).
По идее вроде это сделать можно. Ведь Excel свои кнопки номана показывает. У него в редакторе картинок для кнопок есть такой 17-ый цвет - "удалить" .....
Мож кто знает, как это сделать.
267
15 апреля 2003 года
Cutty Sark
1.2K / / 17.10.2002
Да... Задача не проста...
(если я правильно понял, ты хочешь рисовать на кнопке на панели инструментов, ведь так?)
Пока у меня с наскоку ничего не получилось...
Транспарентность теряется.

А никакая из встроенных не подойдет? Их же сотни три, не меньше...

Вообще, у меня не получается даже расположить какую-нибудь картинку с транспарентом на листе...

Но зато у меня получилось вот что!
Я нарисовал на листе AutoShape(ну там сгруппировал из прямоугольничков и рожиц какую-то фигню), при чем без заливки - то есть он был прозрачный. Потом я его скопировал в клипборд, потом вставил на кнопке. Прозрачного цвета там не возникло. Но там возник виндовский цвет фона. То есть, если не менять эти настройки в момент работы Экселя, то разницы не заметишь. В общем, как-то так:

Код:
Public Const ComBarName = "Standard"

Sub AddToBar()
Dim ComBar As CommandBar, But As CommandBarButton
   
    Set ComBar = Application.CommandBars(ComBarName)
    Set But = ComBar.Controls.Add(msoControlButton, 1)
    ActiveSheet.Shapes("Group 5").Select
    Selection.Copy
    But.PasteFace

End Sub


А этими шейпами довольно много всего можно нарисовать... :)
258
15 апреля 2003 года
SergeySV
1.5K / / 19.03.2003
Прикольно.
Встроенные очень даже подойдут (уж лучше какие-нибудь, но прозрачные) правда хотел я их разместить не на самой панели инструментов, а на CommandButton(Controls) на UserForm.
Хотя, конечно, задача от этого принципиально не меняется.. :-)
Просто я думал, что такую вообщем-то тривиальную задачу (сами-то Microsoft вовсю используют) как размещение картинки с прозрачным фоном на кнопке можно решить стандартными средствами(свойствами). Ну вот в Delphi например проблем никаких, хочешь накладывай, хочешь не накладывай. Не стоит сейчас у меня VB6, так что не могу проверить, там то как..? такой же геморой?
267
15 апреля 2003 года
Cutty Sark
1.2K / / 17.10.2002
Что-то я тебя совсем не пойму. Ты на чем рисунки хочешь делать - на обычной CommandButton на UserForm? Так там же выбираешь рисунок в свойствах, и все тип-топ. Берешь в качестве рисунка любой gif с транспарентом, и никаких проблем. Я то думал, тебе на панели инструментов приложения кнопку надо иметь... Ну-ка, объясняй давай подробнее... :D
258
15 апреля 2003 года
SergeySV
1.5K / / 19.03.2003
Ага,...

Кажется я понял кто меня дурит... :-)

Стоит у меня Paint...trial, который "собака" видно не сохраняет GIF с норм. прозрачным фоном, а тока притворяется, придется тащить на работу чего-нибудь нормально работающее для проверки... :-(

Вот так ходишь в школу, ходишь..., а потом бац - вторая смена.
267
15 апреля 2003 года
Cutty Sark
1.2K / / 17.10.2002
А даже и тащить не надо ничего - в офисовском Microsoft Photo Editore это можно прекрасно сделать... :cool:
258
16 апреля 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Cutty Sark
А даже и тащить не надо ничего - в офисовском Microsoft Photo Editore это можно прекрасно сделать... :cool:



Но вот прикольно то, что можно как оказалось вывернуться еще и так:
1. Сохраняем обыкновенную BMP (например с белым фоном).
2. Для CommandButton выбераем следующие свойства:
2.1 BackColor - &H00FFFFFF&
2.2 BackStyle - fmBackStyleTransparent

Т.о. достигаем такого же эффекта, тока подложка будет просвечивать, если что-то под кнопкой еще кроме формы лежит... :-)

258
17 апреля 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by SergeySV


Но вот прикольно то, что можно как оказалось вывернуться еще и так:
1. Сохраняем обыкновенную BMP (например с белым фоном).
2. Для CommandButton выбераем следующие свойства:
2.1 BackColor - &H00FFFFFF&
2.2 BackStyle - fmBackStyleTransparent



Это я сглупил не много. :-)

Все это у меня не потому работало, что всякие Back... стояли, а надо просто в том, же Paint создать новый лист, убрать галку - непрозрачный фон, сохраняем в BMP 16 color и получаем файл, который номана отображается и без всяких fmBackStyleTransparent.

258
18 апреля 2003 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by SergeySV


Это я сглупил не много. :-)

Все это у меня не потому работало, что всякие Back... стояли, а надо просто в том, же Paint создать новый лист, убрать галку - непрозрачный фон, сохраняем в BMP 16 color и получаем файл, который номана отображается и без всяких fmBackStyleTransparent.



Кстати, тут щас столкнулся еще с одной такой хитростью-глюк:
Когда убраете галку - непрозрачный фон, то как Вы думаете, какой цвет Paint считает фоновым у картинки. Если Вы как и я думали, что это будет цвет выбранный внизу экрана, в палитре, как фон, то Вы ошибаетесь.

Цветом фона Paint считает цвет последней строки в картинке, а на все остальное он кладет ... :-)

Так что, если у Вас нижняя часть картинки закрашена каким-нибудь цветом и Вы не хотите, чтобы он пропал(стал прозрачным), добавьте снизу еще одну строку с цветом выбранного Вами фона и все будет OK.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог