会员登录 用户名: 密码: 登录 新会员注册 [找回密码]
当前位置:编程论坛 >> C/S程序开发专区 >> VC++编程论坛 >> 怎样在对话框中显示图像
首页
  发表一个新主题  发表一个新投票  回复主题 您是本帖的第 569 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
 * 贴子主题:怎样在对话框中显示图像 悬赏分100 [已结帖] 报告本帖给版主  显示可打印的版本  把本贴打包邮递  把本贴加入论坛收藏夹  发送本页面给朋友  把本贴加入IE收藏夹 
 starstar 美女呀,离线,快来找我吧!
  
  
  等 级:初出江湖
  积 分:5
  专家分:0
  提问帖:3/3
  回答帖:0
  总帖数:13
  经验值:76
  注 册:2008-5-8
给starstar发送一个短消息 把starstar加入好友 查看starstar的个人资料 搜索starstar在VC++编程论坛的所有贴子 引用回复这个贴子 回复这个贴子楼主
发贴心情 

怎样在对话框中显示图像

请教各位大虾:怎样在基于对话框的工程通过button按钮在对话框中显示图像??
发帖:2008-5-12 16:21:00
  鲜花(0)  鸡蛋(0)
 linxr 帅哥哟,离线,有人找我吗?巨蟹座1986-6-22
  
  
  头 衔:闲来无事
  等 级:论坛游侠
  积 分:3597
  专家分:2482
  提问帖:9/8
  回答帖:234
  总帖数:324
  经验值:512
  注 册:2007-8-22
给linxr发送一个短消息 把linxr加入好友 查看linxr的个人资料 搜索linxr在VC++编程论坛的所有贴子  引用回复这个贴子 回复这个贴子2
发贴心情 

void CDialogD::OnPaint() 
{
 CPaintDC dc(this); // device context for painting
 BITMAP bm;
 CBitmap bmp;
 bmp.LoadBitmap(IDB_BITMAP_D);
 CDC memdc;
 CRect rect;
 memdc.CreateCompatibleDC(&dc);
 bmp.GetBitmap(&bm);
 CBitmap *bmpold=memdc.SelectObject(&bmp);
 this->GetClientRect(&rect);
 dc.BitBlt(rect.left+2,rect.top+11,bm.bmWidth,bm.bmHeight,&memdc,0,0,SRCCOPY);
 memdc.SelectObject(bmpold);
 memdc.DeleteDC();
 bmp.DeleteObject();
 // TODO: Add your message handler code here 
 // Do not call CDialog::OnPaint() for painting messages
}
其实就是用BitBlt函数。

笨++
        傻#
              .白痴

发帖:2008-5-12 16:24:00
 starstar 美女呀,离线,快来找我吧!
  
  
  等 级:初出江湖
  积 分:5
  专家分:0
  提问帖:3/3
  回答帖:0
  总帖数:13
  经验值:76
  注 册:2008-5-8
给starstar发送一个短消息 把starstar加入好友 查看starstar的个人资料 搜索starstar在VC++编程论坛的所有贴子 引用回复这个贴子 回复这个贴子3
发贴心情 

小弟还想请教一下:这段代码是不是不需要点击button按钮,可直接显示图像?
发帖:2008-5-12 18:08:00
 starstar 美女呀,离线,快来找我吧!
  
  
  等 级:初出江湖
  积 分:5
  专家分:0
  提问帖:3/3
  回答帖:0
  总帖数:13
  经验值:76
  注 册:2008-5-8
给starstar发送一个短消息 把starstar加入好友 查看starstar的个人资料 搜索starstar在VC++编程论坛的所有贴子 引用回复这个贴子 回复这个贴子4
发贴心情 

请教2楼,敲进您那段程序后,怎么对话框里什么都没有?可能小弟没有表达清楚。我是想基于对话框的工程里,通过单击button(显示位图)按钮在pictrure控件中显示位图。烦请2楼的大哥指教!
发帖:2008-5-12 19:29:00
 linxr 帅哥哟,离线,有人找我吗?巨蟹座1986-6-22
  
  
  头 衔:闲来无事
  等 级:论坛游侠
  积 分:3597
  专家分:2482
  提问帖:9/8
  回答帖:234
  总帖数:324
  经验值:512
  注 册:2007-8-22
给linxr发送一个短消息 把linxr加入好友 查看linxr的个人资料 搜索linxr在VC++编程论坛的所有贴子  引用回复这个贴子 回复这个贴子5
发贴心情 

我这代码是写在paint函数中的,你要把它写到一个按钮的函数中也可以,但是你要注意这句话 bmp.LoadBitmap(IDB_BITMAP_D);中的IDB_BITMAP_D,它是一张位图的ID。你必须在工程中引入一张位图才行。

笨++
        傻#
              .白痴

发帖:2008-5-12 22:32:00
 starstar 美女呀,离线,快来找我吧!
  
  
  等 级:初出江湖
  积 分:5
  专家分:0
  提问帖:3/3
  回答帖:0
  总帖数:13
  经验值:76
  注 册:2008-5-8
给starstar发送一个短消息 把starstar加入好友 查看starstar的个人资料 搜索starstar在VC++编程论坛的所有贴子 引用回复这个贴子 回复这个贴子6
发贴心情 

void CTushowDlg::OnShowbutton() 
{
  // TODO: Add your control notification handler code here
        BITMAP bm;
        CBitmap bmp;
        bmp.LoadBitmap(IDB_BITMAP1);
        CDC memdc;
        CRect rect;
        memdc.CreateCompatibleDC(&dc);
        bmp.GetBitmap(&bm);
        CBitmap *bmpold=memdc.SelectObject(&bmp);
        this->GetClientRect(&rect);
        dc.BitBlt(rect.left+2,rect.top+11,bm.bmWidth,bm.bmHeight,&memdc,0,0,SRCCOPY);
        memdc.SelectObject(bmpold);
        memdc.DeleteDC();
        bmp.DeleteObject();
}

编译后出错:
E:\图像处理\tushow\tushowDlg.cpp(181) : error C2065: 'dc' : undeclared identifier
E:\图像处理\tushow\tushowDlg.cpp(185) : error C2228: left of '.BitBlt' must have class/struct/union type
Error executing cl.exe.

tushow.exe - 2 error(s), 0 warning(s)
而且是不是应该把picture控件的ID也写进去,控件类型改为bitmap?请帮小弟指点一下!

发帖:2008-5-13 8:47:00
 linxr 帅哥哟,离线,有人找我吗?巨蟹座1986-6-22
  
  
  头 衔:闲来无事
  等 级:论坛游侠
  积 分:3597
  专家分:2482
  提问帖:9/8
  回答帖:234
  总帖数:324
  经验值:512
  注 册:2007-8-22
给linxr发送一个短消息 把linxr加入好友 查看linxr的个人资料 搜索linxr在VC++编程论坛的所有贴子  引用回复这个贴子 回复这个贴子7
发贴心情 

CPaintDC dc(this);
少了这句
你直接插入资源,选择bitmap,然后更改一下这个位图的id。注意图样应该是.bmp的,可以用画图工具更改图像的格式,如果要超过256色的位图,可以用potoshop另存储一下

笨++
        傻#
              .白痴

发帖:2008-5-13 22:02:00
 starstar 美女呀,离线,快来找我吧!
  
  
  等 级:初出江湖
  积 分:5
  专家分:0
  提问帖:3/3
  回答帖:0
  总帖数:13
  经验值:76
  注 册:2008-5-8
给starstar发送一个短消息 把starstar加入好友 查看starstar的个人资料 搜索starstar在VC++编程论坛的所有贴子 引用回复这个贴子 回复这个贴子8
发贴心情 

非常感谢linxr!
发帖:2008-5-14 9:30:00

本主题贴数8,分页: [1]

此主题已经结帖:

linxr-100

 *快速回复:怎样在对话框中显示图像  [ 回帖是一种美德 :) ]
会员账号 用户名    还没注册?    密码    忘记密码?
内容
  • HTML标签: 不可用
  • UBB标签: 可用
  • 贴图标签: 可用
  • 多媒体标签:可用
  • 表情字符转换:可用
  • 上传图片:不可用
  • 最多15KB
  • 点击表情图即可在帖子中加入相应的表情
                                
    邮件回复 显示签名   [Ctrl+Enter直接提交贴子]

    管理选项锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告