MFC OnPaint CButton
Posted
技术标签:
【中文标题】MFC OnPaint CButton【英文标题】: 【发布时间】:2013-04-30 15:38:30 【问题描述】:如何在 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);
【问题讨论】:
您能否重新表述您的问题?为什么CBitmapButton 不足以供您使用? 【参考方案1】:你的问题真的不清楚。每次处理 WM_PAINT 消息时都进行位图的加载是一个非常糟糕的主意,这往往是总是!
如果你需要一个有位图的按钮,我推荐你使用CMFCButton
。您只需声明该类型的变量并对其执行DDX_CONTROL
。我使用了它们,我还可以在第一次设置后更改它们呈现的图像。
【讨论】:
以上是关于MFC OnPaint CButton的主要内容,如果未能解决你的问题,请参考以下文章
MFC OnPaint()函数中最先调用CDialog::OnPaint()和最后调用CDialog::OnPaint()的巨大区别