Форум » FiveWin » Прозрачный Bitmap и Brush » Ответить

Прозрачный Bitmap и Brush

Pasha: Пока не начался Новый год Вот захотелось сделать, а не получается В наличии: Обьект TWindow с установленным Brush (bmp из ресурса или файла) Прямоугольный (естественно) Bitmap, в котором часть (края) прозрачные Хочу чтобы под прозрачной частью Bitmap был мой Brush Рисую так: 1) Чуть подправил класс TWindow: в методе SayBitmap добавил PalBmpDraw( ::GetDC(), nRow, nCol, coBitmap:hBitmap, coBitmap:hPalette,; nWidth, nHeight,, coBitmap:lTransparent, ::nClrPane ) Дальше: oBmp := TBitMap():new(50, 20,,, if(!lFile,'Cliper',), if(lFile,'Cliper.bmp',), .t., oWnd,,,,,,,,, .t.) #endif oBmp:lTransparent := .t. SetWindowLong( oBmp:hWnd, GWL_EXSTYLE, ; nOr( GetWindowLong( oBmp:hWnd, GWL_EXSTYLE ), WS_EX_TRANSPARENT ) ) oWnd:SayBitmap(50, 20, oBmp) Имею в сухом остатке: под прозрачной областью oBmp видно не Brush, а пустую (серую) область Как поправить ?

Ответов - 1

ММК: Pasha пишет: под прозрачной областью oBmp видно не Brush, а пустую (серую) область Вот может натолкнет тебя на мысль:)) В самплесах есть примерчик с частично прозрачной картинкой. Таким образом я и на Brush ставил. Newhelp называется. Там сделано так: ON PAINT ( PalBmpDraw( oDlg:hDC, 0, 0, oBmp2:hBitmap, 0, 0, 0, SRCPAINT ),; PalBmpDraw( oDlg:hDC, 0, 0, oBmp1:hBitmap, 0, 0, 0, SRCAND ),; где #define SRCPAINT 15597702 // 0xEE0086 #define SRCAND 8913094



полная версия страницы