1.建立乙個乙個最簡視窗(見前文)
2.在stdafx.h中新增對gdi+的支援
#include#pragma comment(lib,"gdiplus.lib")
using namespace gdiplus;
ulong_ptr m_tokengdiplus;
gdiplus::gdiplusstartupinput input;
gdiplus::gdiplusstartupoutput output;
在其initinstance函式實現中新增
status s=gdiplusstartup(&m_tokengdiplus,&input,&output);
在其exitinstance函式實現中新增
gdiplus::gdiplusshutdowm(m_tokengdiplus);
3.在cmainframe類中新增私有成員
image* img;
rectf rc;
4。在cmainframe的建構函式中新增
img=image::fromfile(_t("res/名"));//放在res檔案內
4.在cmainframe類中新增onpaint()函式(類嚮導),修改onpaint()函式
void cmainframe::onpaint()
::bitblt(hdc, 0, 0, rc.width, rc.height, m_dcmemory.getsafehdc(), 0, 0, srccopy);//將快取dc的內容複製到螢幕
releasedc(pdc);//只有自己建立的cdc才能使用deletedc
m_dcmemory.selectobject(poldbitmap);
m_dcmemory.deletedc();//自己建立的
deleteobject(bmp);
}
除錯
MFC 雙緩衝技術
在做俄羅斯方塊遊戲的時候,遇到遊戲過程中螢幕閃爍問題,解決辦法如下 使用雙緩衝技術解決螢幕閃爍 修改檢視類的ondraw 函式 void cmytetrisview ondraw cdc pdc 修改檢視類的drawimage 函式 cmytetrisview 訊息處理程式 void cmytetr...
mfc雙緩衝技術
mfc繪圖時,頻繁的重新整理會導致螢幕閃爍現象,採用雙緩衝技術可以解決閃爍問題。主要方法是將影象先存在記憶體中,然後一次性顯示在螢幕上 步驟 去掉背景重新整理 bool c上位機view onerasebkgnd cdc pdc 在view類中修改ondraw函式 crect rect getcli...
GDI 雙緩衝實現
gdi 使用雙緩衝繪圖 我再來詳細解釋一下剛才實現雙緩衝的具體步驟 1 在記憶體中建立一塊 虛擬畫布 bitmap bmp new bitmap 600,600 2 獲取這塊記憶體畫布的graphics引用 graphics g graphics.fromimage bmp 3 在這塊記憶體畫布上繪...