0

如何在 OnPaint 中为按钮分配位图?您可以使用 dcMemory 在其他地方调用它吗?

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);
4

1 回答 1

0

你的问题真的不清楚。每次处理 WM_PAINT 消息时都进行位图的加载是一个非常糟糕的主意,这往往是总是!

如果您需要一个带有位图的按钮,我建议您使用CMFCButton. 您只需要声明一个该类型的变量并执行DDX_CONTROL它。我使用了它们,我还可以在第一次设置后更改它们呈现的图像。

于 2014-04-05T02:25:58.883 回答