15,979
社区成员
发帖
与我相关
我的任务
分享
CPaintDC dc(this);
CRect rect;
GetClientRect(rect);
dc.FillSolidRect(rect, RGB(0, 255, 0)); //
dc.TextOut(300, 200, _T("1521521521521521521521"));
CDialogEx::OnPaint();
void CTestDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);
CDC cdc;
cdc.CreateCompatibleDC(&dc);
CBitmap bitmap, MaskBitmap, *pOldBitmap, *pOldMaskBitmap;
bitmap.CreateCompatibleBitmap(&dc, rect.right, rect.bottom);
pOldBitmap = cdc.SelectObject(&bitmap);
CRect src(rect);
src.OffsetRect(CSize(-rect.left, -rect.top));
cdc.FillSolidRect(src, RGB(255, 0, 255));
BLENDFUNCTION bf;
memset(&bf, 0, sizeof(bf));
bf.SourceConstantAlpha = 0x2f;
bf.BlendOp = AC_SRC_OVER;
::AlphaBlend(dc.GetSafeHdc(), rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top,
cdc.GetSafeHdc(), src.left, src.top, src.right - src.left, src.bottom - src.top, bf);
cdc.SelectObject(pOldBitmap);
cdc.DeleteDC();
pOldBitmap->DeleteObject();
bitmap.DeleteObject();
}
void CTestDlg::OnMoving(UINT fwSide, LPRECT pRect)
{
CDialogEx::OnMoving(fwSide, pRect);
CRect rect;
GetWindowRect(&rect);
GetParent()->ScreenToClient(&rect);
GetParent()->InvalidateRect(&rect);
InvalidateRect(NULL);
}
BOOL CTestDlg::OnEraseBkgnd(CDC* pDC)
{
//return CDialogEx::OnEraseBkgnd(pDC);
return TRUE;
}
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
CDialogEx::OnLButtonDown(nFlags, point);
}