Добрый день.
Переделываю
контрол, под свою задачу, необходимо чтобы бакграунд у контрола был прозрачным, вроде ничего сложного, нашел место где рисуется
CMemDC(HDC hDC, LPRECT pRect = NULL)
{
ATLASSERT(hDC!=NULL);
m_dc = hDC;
if( pRect != NULL )
m_rc = *pRect;
else
m_dc.GetClipBox(&m_rc);
CreateCompatibleDC(m_dc);
::LPtoDP(m_dc, (LPPOINT) &m_rc, sizeof(RECT) / sizeof(POINT));
m_bitmap.CreateCompatibleBitmap(m_dc, m_rc.right - m_rc.left, m_rc.bottom - m_rc.top);
m_hOldBitmap = SelectBitmap(m_bitmap);
::DPtoLP(m_dc, (LPPOINT) &m_rc, sizeof(RECT) / sizeof(POINT));
SetWindowOrg(m_rc.left, m_rc.top);
}
и вот тут запарка,не получается сделать безцветный фон, т.к насколько я понял
CreateCompatibleBitmap
создает монохромную картинку
и как дальше я что-то не понимаю, вроде нужно сделать битмапку с таки же цветом как и цвет окна на котором лежит контрол, но как это сделать? Или это как-то по другому делается? Или можна задать прозрачность при создании битмапа?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, pigeon, Вы писали:
P>Добрый день.
P>Переделываю контрол, под свою задачу, необходимо чтобы бакграунд у контрола был прозрачным, вроде ничего сложного, нашел место где рисуется
P>P> CMemDC(HDC hDC, LPRECT pRect = NULL)
P> {
P> ATLASSERT(hDC!=NULL);
P> m_dc = hDC;
P> if( pRect != NULL )
P> m_rc = *pRect;
P> else
P> m_dc.GetClipBox(&m_rc);
P> CreateCompatibleDC(m_dc);
P> ::LPtoDP(m_dc, (LPPOINT) &m_rc, sizeof(RECT) / sizeof(POINT));
P> m_bitmap.CreateCompatibleBitmap(m_dc, m_rc.right - m_rc.left, m_rc.bottom - m_rc.top);
P> m_hOldBitmap = SelectBitmap(m_bitmap);
P> ::DPtoLP(m_dc, (LPPOINT) &m_rc, sizeof(RECT) / sizeof(POINT));
P> SetWindowOrg(m_rc.left, m_rc.top);
P> }
P>
P>и вот тут запарка,не получается сделать безцветный фон, т.к насколько я понял CreateCompatibleBitmap
P>создает монохромную картинку и как дальше я что-то не понимаю, вроде нужно сделать битмапку с таки же цветом как и цвет окна на котором лежит контрол, но как это сделать? Или это как-то по другому делается? Или можна задать прозрачность при создании битмапа?
Попробуй вместо m_dc использовать ::GetWindowDC(NULL);
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, BuHHunyx, Вы писали:
хъ
Так не помогает
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Здравствуйте, pigeon, Вы писали:
P>Здравствуйте, BuHHunyx, Вы писали:
P>хъ
P>Так не помогает
Re[5]: Как из HWND получить HBITMAP ?Автор: Andrew S
Дата: 15.01.03
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>