请问不通过Image控件如何用直接用DC来显示一个BMP??

时间:2020-12-25 19:24:28
请问不通过Image控件如何用直接用DC来显示一个BMP??

5 个解决方案

#1


请问DC是什么?

#2


可以用Canvas么
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
pBitmap->LoadFromFile("C:\\1.bmp");
Form1->Canvas->Draw(0,0,pBitmap);

#3


设备描述表简称DC

#4


大头说的肯定可以

#5


给你举个例子吧。在TPanel上画图
TPanel *panel;

HDC dc,memdc;
dc=GetDC(panel->Handle);
memdc=CreateCompatibleDC(dc);//这步很关键。
//如果是画图而不是显示现成的Bmp直接在dc上画会造成闪烁!!!!!
//所以先在内存DC上画好在BitBlt到dc上。
HBITMAP m_bmp;
m_bmp=....//这里可以是TBitmap->Handle,可以是由LoadBitmap得到。
SelectObject(memdc,m_bmp);
BitBlt(m_dcx,0,0,panel->Width,panel->Height,mendc,0,0,SRCCOPY);
这样就显示好了。

#1


请问DC是什么?

#2


可以用Canvas么
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
pBitmap->LoadFromFile("C:\\1.bmp");
Form1->Canvas->Draw(0,0,pBitmap);

#3


设备描述表简称DC

#4


大头说的肯定可以

#5


给你举个例子吧。在TPanel上画图
TPanel *panel;

HDC dc,memdc;
dc=GetDC(panel->Handle);
memdc=CreateCompatibleDC(dc);//这步很关键。
//如果是画图而不是显示现成的Bmp直接在dc上画会造成闪烁!!!!!
//所以先在内存DC上画好在BitBlt到dc上。
HBITMAP m_bmp;
m_bmp=....//这里可以是TBitmap->Handle,可以是由LoadBitmap得到。
SelectObject(memdc,m_bmp);
BitBlt(m_dcx,0,0,panel->Width,panel->Height,mendc,0,0,SRCCOPY);
这样就显示好了。