为什么我在MFC对话框中,在OnPaint函数中加入以下代码,BMP图像不能显示啊~~·
BITMAP bm;
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
CDC memdc;
CDC dc;
memdc.CreateCompatibleDC(&dc);/
bmp.GetBitmap(&bm);
CBitmap *bmpold=memdc.SelectObject(&bmp);/
dc.BitBlt(20,20,bm.bmWidth,bm.bmHeight,&memdc,0,0,SRCCOPY);
memdc.SelectObject(bmpold);
memdc.DeleteDC();
bmp.DeleteObject();
求助啊求助啊
MFC中OnPaint函数显示BMP图片的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答
- shmiloveyou 2014-01-02 08:15关注
1.先看看这行代码:
bmp.LoadBitmap(IDB_BITMAP1);
改为:
BOOL bLodBit = bmp.LoadBitmap(IDB_BITMAP1);
调试查看bLodBit是否为TRUE(值为1),返回TRUE后再看2.dc.BitBlt(20,20,bm.bmWidth,bm.bmHeight,&memdc,0,0,SRCCOPY);
改为:
BOOL bDcBlt = dc.BitBlt(20,20,bm.bmWidth,bm.bmHeight,&memdc,0,0,SRCCOPY);
调试查看bDcBlt是否为TRUE(值为1),返回TRUE后再看3.在你的OnPaint函数中“CDialog::OnPaint();”这句代码的位置,
如果在放在OnPaint函数的最开始位置,如:
CMyDialog::OnPaint()
{
CDialog::OnPaint();
//然后是你的代码
}
效果出不来就在“CDialog::OnPaint();”位置不对,应该如下:
CMyDialog::OnPaint()
{
//然后是你的代码
CDialog::OnPaint();
return ;
}
详细请看:http://blog.csdn.net/qq2399431200/article/details/17739087
这篇博文。Mark20140102:提完问题后就不管不问,或是解决了也不会来补充下解决的方法,让人很气愤。在此给出回答是本着让遇到同样问题的同仁看到解决方法,不是来为你解决问题,你太不负责任!
解决 无用评论 打赏 举报
悬赏问题
- ¥20 删除和修改功能无法调用
- ¥15 kafka topic 所有分副本数修改
- ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
- ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
- ¥40 串口调试助手打开串口后,keil5的代码就停止了
- ¥15 电脑最近经常蓝屏,求大家看看哪的问题
- ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
- ¥50 C++五子棋AI程序编写
- ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。
- ¥15 SQL Server analysis services 服务安装失败