用VC++对话框怎么显示图片啊,谢谢你了

 我来答
测绘地理信息
2011-09-30 · TA获得超过2204个赞
知道小有建树答主
回答量:516
采纳率:100%
帮助的人:472万
展开全部
在WM_PAINT中画图。这是显示图片最常用的方法,各类窗体、控件要加上背景都基本上是在OnPaint中将图片画上。具体做法如下:

  //从资源中载入图片
  CBitmap bmp;
  bmp.LoadBitmap(IDB_BITMAP1);
  //得到图片信息
  BITMAP bmpInfo;
  bmp.GetBitmap(&bmpInfo);
  //在内存中创建一个位图兼容设备
   CDC dcMemory;
  dcMemory.CreateCompatibleDC(&dc);
   //将图片选入兼容设备
  CBitmap *pOldBmp=dcMemory.SelectObject(&bmp);
  //将兼容设备的内容copy到屏幕设备中,实现真正的Paint
  dc.BitBlt(0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, &dcMemory, 0, 0, SRCCOPY);
  //将设备还原
  dcMemory.SelectObject(pOldBmp);

  这样图片便显示在主对话框上。  

  特殊处理:
  是不是经常有人提到某些加快图形显示、减少闪烁?处理什么WM_ERASEBKGND消息?
  确实是这样,应为每个窗体重画时,它先会发WM_ERASEBKGND消息,让窗体用设置好的刷子将窗体需要重画的区域刷一次,然后才会发送 WM_PAINT消息,将需要的再画上去。这样就可以保证不会有残留的图形。但这样就会在短暂的时间内出现灰色背景,如果执行比较慢,就会让人感觉到。因此如果你确定不需要清除原有的背景,那么你就可以在OnEraseBkgnd中直接返回TRUE,或者直接在这里面绘图。
zcy990718
2011-09-30 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:66%
帮助的人:1519万
展开全部
在OnPaint中加载位图用BITBLT输出位图
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友96aa8d3
2011-09-30 · TA获得超过433个赞
知道小有建树答主
回答量:2306
采纳率:75%
帮助的人:948万
展开全部
static 属性改为picture
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-10-01
展开全部
{
typedef int (WINAPI ICEPUB_DISPIMG)(HWND hWnd,char *strImgFilename,int x,int y);
ICEPUB_DISPIMG *icePub_dispImg = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_dispImg = (ICEPUB_DISPIMG *)GetProcAddress(hDLLDrv, "icePub_dispImg");
}

if(icePub_dispImg != NULL)
icePub_dispImg(m_hWnd,"b.png",10,10);
// icePub_dispImg(m_ctrlText.m_hWnd,"b.jpg",0,0);
if(hDLLDrv)
FreeLibrary(hDLLDrv);
}

参考资料: icePubDll.dll百度之

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式