Posted on 2012-09-29 14:15
盛勝 閱讀(929)
評論(0) 編輯 收藏 引用 所屬分類:
vc++深入詳解
普通畫刷
void CTestView::OnLButtonUp(UINT nFlags, CPoint point)
{
CBrush brushRed(RGB (255,0,0));
CBrush brushGreen(RGB (0,255,0));
CBrush brushBlue(RGB (0,0,255));
CClientDC dc(this);
dc.FillRect(CRect(m_ptOrigin,point),&brushGreen);
CView::OnLButtonUp(nFlags, point);
}位圖畫刷
void CTestView::OnLButtonUp(UINT nFlags, CPoint point)
{
//創(chuàng)建位圖對象
CBitmap bitmap;
//加載位圖資源
bitmap.LoadBitmap(IDB_BITMAP1);
//創(chuàng)建位圖畫刷
CBrush brush(&bitmap);
//創(chuàng)建并獲得設備描述表
CClientDC dc(this);
//利用位圖畫刷填充鼠標拖拽過程中形成的矩形區(qū)域
dc.FillRect(CRect(m_ptOrigin,point),&brush);
CView::OnLButtonUp(nFlags, point);
}
透明畫刷
void CTestView::OnLButtonUp(UINT nFlags, CPoint point)
{
//創(chuàng)建并獲得設備描述表
CClientDC dc(this);
//創(chuàng)建一個空畫刷;getstockobject的返回類型是HGDIOBJECT,需要進行強制類型轉(zhuǎn)換
//GetStockObject函數(shù)可以獲取一個畫刷句柄,F(xiàn)romHandle函數(shù)可以將畫刷句柄轉(zhuǎn)換為畫刷對象,繪圖操作需要的是一個畫刷對象
CBrush *pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
//將空畫刷填入設備描述表ccwf
CBrush *pOldBrush=dc.SelectObject(pBrush);
//繪制一個矩形
dc.Rectangle(CRect(m_ptOrigin,point));
dc.SelectObject(pOldBrush);
CView::OnLButtonUp(nFlags, point);
}