Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Регион для кнопки


Автор: kurlyak 31.7.2017, 14:50
У меня есть диалоговое окно и кнопка на нем, есть изображение BMP, я делаю регион и пытаюсь наложить это изображение на кнопку в виде региона- но ничего не работает. Этот метод работает тольлко для самого диалогового окна, но для кнопки на нем не работает. Как сделать регион для кнопки? Вот мой код.

Код

OnInitDialog()
{
CRect rect_button;
m_button.GetClientRect(rect_button);
HRGN Rgn_bt = ::CreateRectRgn( rect_button.left, rect_button.top, rect_button.left + 100, rect_button.top + 50 );    
m_button.SetWindowRgn(Rgn_bt, TRUE);
}

OnPaint()
{
CDC *pDC_bt;
pDC_bt=m_button.GetDC();
CDC hdcBits_bt;
hdcBits_bt.CreateCompatibleDC(pDC_bt);
hdcBits_bt.SelectObject(buttonBitmap);
pDC_bt->BitBlt(0, 0, 711, 400, &hdcBits_bt, 0, 0, SRCCOPY);
DeleteDC(hdcBits_bt);
}


причем я пытался добавлять ModifyStyle(0,WS_CLIPSIBLINGS); в функцию PreSubclassWindow() класса кнопки, и просто так m_button.ModifyStyle(0,WS_CLIPSIBLINGS); - не хочет работать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)