Можно ли рисунок сделать полупро Topic is solved
-
- Earned a small fee
- Posts: 15
- Joined: Sun Jun 29, 2008 8:27 pm
- Contact:
Можно ли рисунок сделать полупро
При дальнейшем освоении wx возник вопрос...если я загружаю на wxPanel bmp изображение, а затем начинаю рисовать, то нельзя ли дальнейшие изображения сделать полупрозрачными? например у wxPen... вот код того что я сделала:
Если это можно сделать, то подскажите как...как сделать полупрозрачным весь экран я знаю...а вот как отдельные части даже не догадываюсь
Если это можно сделать, то подскажите как...как сделать полупрозрачным весь экран я знаю...а вот как отдельные части даже не догадываюсь
- Attachments
-
- графика.txt
- (424 Bytes) Downloaded 179 times
-
- wxWorld Domination!
- Posts: 1471
- Joined: Tue Nov 14, 2006 7:58 am
- Location: Saint-Petersburg, Russia
Re: Можно ли рисунок сделать полуп
Привет.
http://docs.wxwidgets.org/stable/wx_wxg ... icscontext
Ну, примерно так:
Т.е., если использовать wxGCDC, то альфа канал для wxColour (который может использоваться для wxPen, wxBrush) будет работать.
Насколько я знаю, прозрачность таких GDI объектов как wxPen, wxBrush поддерживается только для wxGraphicsContext и, соответственно wxGCDCbastet_kat wrote:При дальнейшем освоении wx возник вопрос...если я загружаю на wxPanel bmp изображение, а затем начинаю рисовать, то нельзя ли дальнейшие изображения сделать полупрозрачными? например у wxPen...
http://docs.wxwidgets.org/stable/wx_wxg ... icscontext
Ну, примерно так:
Code: Select all
#if wxUSE_GRAPHICS_CONTEXT
#include <wx/graphics.h>
#endif
...
void
wxLinearMeter::OnPaint(wxPaintEvent &event)
{
wxPaintDC pdc(this);
#if wxUSE_GRAPHICS_CONTEXT
if( m_style&wxLM_USEGDIPLUS )
{
wxGCDC gdc(pdc) ;
CalcBarRect(&gdc, GetClientSize());
DoDrawing(&gdc);
}
else
{
#endif
CalcBarRect(&pdc, GetClientSize());
DoDrawing(&pdc);
#if wxUSE_GRAPHICS_CONTEXT
}
#endif
}
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
-
- Earned a small fee
- Posts: 15
- Joined: Sun Jun 29, 2008 8:27 pm
- Contact:
Re: Можно ли рисунок сделать полуп
спасибо за информацию, сейчас разбираю, но вот никак не могу понять а что именно за эту прозрачность отвечает? обычно она указывается в процентах от 0 до 100. 0 - прозрачная, 100-сплошной цвет....а тут я такого не вижу....
-
- wxWorld Domination!
- Posts: 1471
- Joined: Tue Nov 14, 2006 7:58 am
- Location: Saint-Petersburg, Russia
Re: Можно ли рисунок сделать полуп
Ну как жеbastet_kat wrote:спасибо за информацию, сейчас разбираю, но вот никак не могу понять а что именно за эту прозрачность отвечает? обычно она указывается в процентах от 0 до 100. 0 - прозрачная, 100-сплошной цвет....а тут я такого не вижу....
Вот конструктор wxColour:
Code: Select all
wxColour(unsigned char red, unsigned char green, unsigned char blue, unsigned char alpha=wxALPHA_OPAQUE)
...
alpha
The alpha value. Alpha values range from 0 (wxALPHA_TRANSPARENT) to 255 (wxALPHA_OPAQUE).
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
-
- Earned a small fee
- Posts: 15
- Joined: Sun Jun 29, 2008 8:27 pm
- Contact:
Re: Можно ли рисунок сделать полуп
=) спасибо, теперь поняла где просмотрела. вот только он у меня ругается на wxGCDC...говорит не объявлена, хотя библиотеку подключила, и говорит что деструктора нет....
-
- wxWorld Domination!
- Posts: 1471
- Joined: Tue Nov 14, 2006 7:58 am
- Location: Saint-Petersburg, Russia
Re: Можно ли рисунок сделать полуп
Если вы под виндой, тогда следует глянуть в файл WXROOT/include/wx/msw/setup.h и посмотреть установлено ли wxUSE_GRAPHICS_CONTEXT в 1 (и обратите внимание на комметарий):bastet_kat wrote:=) спасибо, теперь поняла где просмотрела. вот только он у меня ругается на wxGCDC...говорит не объявлена, хотя библиотеку подключила, и говорит что деструктора нет....
Code: Select all
// Enable the new wxGraphicsPath and wxGraphicsContext classes for an advanced
// 2D drawing API. (Still somewhat experimental)
//
// Please note that on Windows you will need to link with gdiplus.lib (use
// USE_GDIPLUS=1 for makefile builds) and distribute gdiplus.dll with your
// application if you want it to be runnable on pre-XP systems.
//
// Default is 0
//
// Recommended setting: 1
#ifndef wxUSE_GRAPHICS_CONTEXT
#define wxUSE_GRAPHICS_CONTEXT 0
#endif
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
-
- Earned a small fee
- Posts: 15
- Joined: Sun Jun 29, 2008 8:27 pm
- Contact:
Re: Можно ли рисунок сделать полуп
я извиняюсь, но как в wxdev-c++ перекомпилировать библиотеку? я вроде изменила в h файле параметры, скомпилировала. при запуске программы уже ошибки не выдает, но и не выполняет условие, не заходит в #if wxUSE_GRAPHICS_CONTEXT . может я что не так делаю?
-
- wxWorld Domination!
- Posts: 1471
- Joined: Tue Nov 14, 2006 7:58 am
- Location: Saint-Petersburg, Russia
Re: Можно ли рисунок сделать полуп
Ну тут я ничем помочь не могу никогда не юзал эту штуку.bastet_kat wrote:я извиняюсь, но как в wxdev-c++ перекомпилировать библиотеку?
Работаю исключительно с командной строки Если у вас MinGW попробуйте просто зайти в диру WXROOT\build\msw и выполнить команду
Code: Select all
mingw32-make.exe -f makefile.gcc [опции всякие]
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
-
- Earned a small fee
- Posts: 15
- Joined: Sun Jun 29, 2008 8:27 pm
- Contact:
Re: Можно ли рисунок сделать полуп
Да, рекомендую заглянуть в файл config.gcc и установить опцию USE_GDIPLUS в 1.
к сожалению не нашла этот файл....и прозрачности так и нет, хотя библиотеку вроде перекомпилировала....
к сожалению не нашла этот файл....и прозрачности так и нет, хотя библиотеку вроде перекомпилировала....
Если Вы используете MinGW, откомпилировать wxWidgets с GDI+ (пока) не получится. Вы можете сделать прозрачность и без GDI+. Смотрите пример в samples/images. Код в файле image.cpp, начинающийся после комментария "// Then, draw colourful alpha-blended stripes".
### EzPresso.ru - Daylighting Simulation Software Development ###
Ubuntu 9.04 / Windows XP Pro
GNUC / MinGW / wxWidgets 2.9.1
Ubuntu 9.04 / Windows XP Pro
GNUC / MinGW / wxWidgets 2.9.1
-
- wxWorld Domination!
- Posts: 1471
- Joined: Tue Nov 14, 2006 7:58 am
- Location: Saint-Petersburg, Russia
Ну не совсем так все плохоEzPresso wrote:Если Вы используете MinGW, откомпилировать wxWidgets с GDI+ (пока) не получится.
В аттаче я выложил архив инклюдов и библиотеку для MinGW (просто сделанную из gdiplus.dll), их надо кинуть в соответствующие диры MinGW. Инклюды взяты из студии 7.1 и слегка (действительно совсем слегка) подкручены. Ну и пересобрать WX с включенным wxUSE_CRAPHICS_CONTEXT. Да, единственное, что пришлось сделать - заменить в файле WXROOT/SRC/msw/graphics.cpp abs(sweepAngle) на fabs(sweepAngle) (строка 709). И это все, сампл drawing работает с графическим контекстом и полупрозрачность имеет место
- Attachments
-
- GDIPLUS.zip
- (99.34 KiB) Downloaded 177 times
OS: Windows XP Pro
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10
Compiler: MSVC++ 7.1
wxWidgets: 2.8.10