MFC基礎--怎樣貼一張圓型的點陣圖 (轉)
MFC基礎--怎樣貼一張圓型的點陣圖
如果你要做有關棋類的東東
又恰好有兩張漂亮棋子的點陣圖,
可惜兩張點陣圖是方型的,後面
有背景..在裡只要將
背景色設成透明就行了,可在
MFC裡怎樣實現把背景去掉只
顯示圓形的棋子呢?
例項如下:
//To invoke this function with the position
BOOL IsBlack = TRUE;//set the black stone defautly
CBitMap m_bStoneB;
CBitMap m_bStoneW;
//load bmp from re
m_bStoneB.Loaitmap(IDB_BLACKSTONE);
m_bStoneW.LoadBitmap(IDB_WHITESTONE);
void CxxDlg::OnPutStone(CPoint point)
{
CDC *pDC = GetDC(); //Get Device Context
CBitmap *pOldBitmap;
CBrush *pOldBrush;
CPen *pOldPen;
if(pDC == NULL)
return;
CDC dcimage;
if (!dcimage.CreateCompatibleDC(pDC)) //Create MemDC
return;
CRect rect; //Get the rectangle of stone;
rect.left = point.x - 25/3;
rect.right = point.x + 25/3;
rect.top = point.y - 25/3;
rect.bottom = point.y + 25/3;
if(IsBlack) //judge whether stone is black
{
// blackstone in memory and select out oldbitmap
pOldBitmap = dcimage.Select(&m_bStoneB);
CBrush br(RGB(0, 0, 0)); //set brush to black
CPen pen(PS_SOLID,1,RGB(0, 0, 0));//set pen to black
pOldPen=pDC->SelectObject(&pen);//select in pen(black)
//and out oldpen
pOldBrush = pDC->SelectObject(&br);//select in brush(black)
pDC->Ellipse(&rect);//draw a ellipse in defined rectangle
BITMAP bm;
m_bStoneB.GetBitmap(&bm);//Get blackstone bitmap info
//paint memory bitmap(blackstone) with the operator OR
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),
&dcimage,0,0,bm.
mWidth,bm.bmHeight,SRCPAINT);
}
else //the same to draw whitestone bitmap
{
//select in whitestone and select out blackstone
pOldBitmap = dcimage.SelectObject(&m_bStoneW);
CBrush br(RGB(255, 255, 255)); //set white brush
CPen pen(PS_SOLID,1,RGB(255, 255, 255));//set white pen
pOldPen=pDC->SelectObject(&pen);
pOldBrush = pDC->SelectObject(&br);
pDC->Ellipse(&rect);
BITMAP bm;
m_bStoneW.GetBitmap(&bm);
//paint memory bitmap(whitestone) with the operator AND
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),
&dcimage,0,0,bm.
mWidth,bm.bmHeight,SRCAND);
}
dcimage.SelectObject(pOldBitmap); //select old bitmap
pDC->SelectObject(pOldPen);//select old pen
pDC->SelectObject(pOldBrush);//select old brush
IsBlack = !IsBlack; //switch to white or black
ReleaseDC(pDC);//relieve GDI resource(important)
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-987950/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 怎樣修改windows裡的開始按鈕的點陣圖? (轉)Windows
- 【基礎知識】索引--點陣圖索引索引
- 使用點陣圖選單項——設定點陣圖型別標記 (轉)型別
- JAVA基礎:怎樣設計合適的介面(轉)Java
- 怎樣畫一張人見人愛的資料治理框架圖?框架
- 使用點陣圖選單項——建立點陣圖 (轉)
- 附一張js的型別轉換JS型別
- java基礎(十) 陣列型別Java陣列型別
- 轉貼【怎樣撬走別人的女友--官方教程】
- PHP掃描圖片轉點陣 二維碼轉點陣PHP
- Redis 點陣圖基礎到統計活躍使用者Redis
- 建立點陣圖選單 (轉)
- 使用點陣圖選單項——點陣圖選單項例項 (轉)
- [鞏固基礎]總結Python基礎知識的14張思維導圖Python
- Javascript基礎之-強制型別轉換(一)JavaScript型別
- 數字化轉型流程是怎樣的?
- 一個點陣圖淡入淡出控制元件 (轉)控制元件
- 初學MFC(3)——樹型控制元件之一 (轉)控制元件
- 趣圖:程式設計師值得貼一個這樣的程式設計師
- NumPy 基礎 (一) - 建立陣列陣列
- FICO一點基礎
- 重貼:MFC類中獲得其它類指標 (轉)指標
- Marvelous Designer基礎操作3 - 貼圖匯出
- excel表格複製貼上格式怎麼能一模一樣 表格怎麼複製一個一模一樣的Excel
- 怎麼用 PHP 玩轉程式之一 — 基礎PHP
- java基礎學習之七:陣列型別Java陣列型別
- Golang 基礎-資料型別-陣列和切片Golang資料型別陣列
- Visual C++/MFC 指南(4):MFC 簡要指點 (轉)C++
- 點陣圖
- java基礎:型別轉換castJava型別AST
- BMP點陣圖格式詳解--轉載
- 為什麼網路轉型是數字化轉型的基礎?
- bitmap index點陣圖索引系列(一)Index索引
- 圖論(一)--基礎概念圖論
- java 基礎型別與byte[]的轉換Java型別
- 26歲零基礎轉行做軟體測試怎麼樣?
- 有了CPU平臺才做得了AI轉型?英特爾認為既有IT基礎一樣能行!AI
- 載入點陣圖檔案到DirectDraw的方法(轉)