位图显示-MFC中OnPaint函数显示BMP图片的问题

问题描述

MFC中OnPaint函数显示BMP图片的问题

为什么我在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();
求助啊求助啊

解决方案

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:提完问题后就不管不问,或是解决了也不会来补充下解决的方法,让人很气愤。在此给出回答是本着让遇到同样问题的同仁看到解决方法,不是来为你解决问题,你太不负责任!

时间: 2024-08-31 20:13:55

位图显示-MFC中OnPaint函数显示BMP图片的问题的相关文章

应用-对话框资源加载位图,MFC位图加载显示问题

问题描述 对话框资源加载位图,MFC位图加载显示问题 在一个MFC应用程序中,对话框资源加载位图并显示,但是最终显示的时候,位图却显示不全,这是什么原因,有什么解决办法吗? 解决方案 你是怎么加载的位图?是写在OnInitDialog还是OnPaint,确保写在后者. 另外你的窗体是否足够大,容纳位图,以及上面有没有别的控件挡住? 解决方案二: 是怎么显示的?是不是pictur空间尺寸太小了? 解决方案三: 图片控件的大小是怎么控制的,是不是图片控件大小设置太小了.导致图片尺寸显示不出来 解决方

mfc-关于MFC中Format()函数的使用

问题描述 关于MFC中Format()函数的使用 m_show = ""; for (n = 0; n < veccommon.size(); n++) { temp.Format("(%d)",veccommon[n].count); m_show = m_show + veccommon[n].name + temp + " "; } UpdateData(FALSE); 运行之后对话框里没有显示m_show的内容 解决方案 forma

画图-如何用MFC中OnDraw函数输出的文字是反向的?

问题描述 如何用MFC中OnDraw函数输出的文字是反向的? 如题,要用绘图程序画图,在OnDraw函数中,如何输出反向的文字? 解决方案 自己先把文字反向reverse了,再OnDraw来TextOut 解决方案二: 只能是先把你要输出的字符改为反向的,然后再输出,比如用strrev来吧字符串反向一下

opengl 纹理 球-opengl在mfc中载入一副BMP文件作为纹理,编译链接都通过了但运行时就提示停止工作

问题描述 opengl在mfc中载入一副BMP文件作为纹理,编译链接都通过了但运行时就提示停止工作 HBITMAP hBMP;//定义BMP头BITMAP BMP;//BMP结构体//byte Texture[]={IDB_BITMAP3};byte Texture[]={IDB_BITMAP4};glGenTextures(sizeof(Texture) &texture[0]);// Generate 6 Textures (sizeof(Texture)=6 ID's)for(int lo

c++-使用显示 int 数组的函数显示一个 int 是否合理?

问题描述 使用显示 int 数组的函数显示一个 int 是否合理? void print(const int arr[], int count) { for (size_t i = 0; i != count; ++i) cout << arr[i] << endl; } int main() { int i = 0, j[2] = { 0,1 }; print(&i, 1); print(j, 2); return 0; } <C++ Primer>第五版,中

显示-MFC中软键盘对话框置顶

问题描述 MFC中软键盘对话框置顶 程序中定义一个全屏窗口类,在窗口中设有小键盘按钮,点击后弹出小键盘(采用ShellExecute(NULL, _T("open"), strPath, _T(""), _T(""), SW_SHOW);的方式打开软键盘程序).后按下实际键盘的开始按钮,再单击全屏窗口,软键盘窗口被全屏窗口挡住.怎样设置在上述操作后,,软键盘仍然能在前台显示.

mfc 图像的显示-vc中实现下图显示,既有文字信息,又有图像显示框动态变化的显示,请高手指点这是用的什么控键?

问题描述 vc中实现下图显示,既有文字信息,又有图像显示框动态变化的显示,请高手指点这是用的什么控键? 解决方案 首先,图确实看不清楚.其次,是控件.最后,可能没有标准的控件可以实现,可以考虑 DIRECTUI界面框架,或其它第三方控件. 解决方案二: 最好是用第三方界面库,可以支持这种复杂要求 解决方案三: 求大神们给予帮助,有能者可以实现的,可以有偿服务!

MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

        最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序,这里介绍两种在对话框picthre控件中显示BMP图片的最简单基础的方法.       ~~方法可能并不完美,高手忽略,但是提供一种能运行的方法,希望对刚接触这方面知识的同学有所帮助.可能你觉得文章过于简单或者有些过于详细叙述(点到即可我并不反对),但也为哪些入门同学想想,当初自己也是一头雾

PHP5.2中date()函数显示时间与北京时间相差8小时的解决办法_php技巧

问题: php函数date("Y-n-d   H-i-s");   输出的时间与当地时间相差8个小时. 解决思路 北京时间是东8区,可能是时区问题.但是此前都没问题啊,经过google发现原来从php5.1.0开始,php.ini里加入了 date.timezone这个选项,默认情况下是关闭的,也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和我们的时间(北京时间)差了正好8个小时.  在调用date()函数之前先设定时区. 方法一:date_default_timezo