All pastes #101573 Raw Edit

Unnamed

public text v1 · immutable
#101573 ·published 2006-07-27 00:01 UTC
rendered paste body
  COLORREF fill_color = RGB(r,g,b);
  COLORREF outline_color = RGB(r2,g2,b2);
  HBITMAP mask = CRdcolfill::GetFillPattern(mask_id);
  CButton* button = (CButton*)GetDlgItem(thisbutton);
  CDC* button_dc = button->GetDC();
  CRect rect;
  button->GetClientRect(&rect);
  HDC hdcMem = CreateCompatibleDC(button_dc->GetSafeHdc());
  HDC hdcMem2 = CreateCompatibleDC(button_dc->GetSafeHdc());
  HBITMAP hbmOld = (HBITMAP)SelectObject(hdcMem, mask);
  
  BitBlt(hdcMem2, rect.left, rect.top, rect.Width(), rect.Height(), hdcMem, rect.top, rect.left, SRCINVERT);
  BitBlt(button_dc->GetSafeHdc(), rect.left, rect.top, rect.Width(), rect.Height(), hdcMem2, rect.top, rect.left, SRCCOPY);

  SelectObject(hdcMem, hbmOld);
  DeleteDC(hdcMem2);
  DeleteDC(hdcMem);
  button->ReleaseDC(button_dc);
  button->UpdateData(FALSE);