2013-04-30 43 views
0

如何在OnPaint按鈕中分配位圖?你可以使用dcMemory在其他地方調用它嗎?MFC OnPaint CButton

CPaintDC dc(this); 

CBitmap bmp, *poldbmp; 
CDC Refinery; 



//load the bitmap resouce 
bmp.LoadBitmap(IDB_BITMAP1); 


    //create a compataible memory DC 
Refinery.CreateCompatibleDC(&dc); 


//Select the bitmap into DC 
poldbmp = Refinery.SelectObject(&bmp); 


//Copy (BitBlt) bitmap from memory DC to screen DC 
dc.BitBlt(10,10,100, 100, &Refinery,0, 0, SRCCOPY); 

Refinery.SelectObject(poldbmp); 
+1

你也許可以重述一下你的問題嗎?爲什麼不是[CBitmapButton](http://msdn.microsoft.com/zh-cn/library/a3y45xs0(v = vs80).aspx)足以供您使用? – 2013-04-30 19:54:20

回答

0

你的問題真的不清楚。每次處理WM_PAINT消息時都會使位圖的加載非常糟糕,因爲這往往是始終如一!

如果您需要一個具有位圖的按鈕,我建議您使用CMFCButton。你只需要聲明一個該類型的變量並且執行它的一個DDX_CONTROL。我使用了它們,我也可以在第一次設置它之後更改它們呈現的圖像。