社区
界面
帖子详情
点击对话框的打开图片按钮后,用户可以选择输入bmp格式的图片,并在对话框中的picture显示出来
燕子lovinglife
2013-01-18 10:35:05
本人刚开始学vc,现在想实现一个显示图片功能:点击对话框的打开图片按钮后,用户可以选择输入bmp格式的图片,并在对话框中的picture显示出来!请各位高手能否指点指点啊!在此先谢谢啦!
...全文
306
6
打赏
收藏
点击对话框的打开图片按钮后,用户可以选择输入bmp格式的图片,并在对话框中的picture显示出来
本人刚开始学vc,现在想实现一个显示图片功能:点击对话框的打开图片按钮后,用户可以选择输入bmp格式的图片,并在对话框中的picture显示出来!请各位高手能否指点指点啊!在此先谢谢啦!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
守化髅
2013-04-07
打赏
举报
回复
跪求楼上方法!我也需要做这个和你一模一样!
jimette
2013-01-18
打赏
举报
回复
可以使用picture control控件 方法1: 更改属性 1)Picture Control属性 直接关联上image 并更改type为Bitmap 方法2: 添加控件变量为PictureEx对象, 直接m_pic1.LoadBitmap(IDB_BITMAP1); PictureEx类网上搜 uBmpResource:图片ID; uCtrlResource: Picture控件ID void SetBitmap(UINT uBmpResource, UINT uCtrlResource) { HBITMAP hBitmap; CStatic *pStatic = (CStatic *)GetDlgItem(uCtrlResource); hBitmap = (HBITMAP)LoadImage( AfxGetInstanceHandle(), MAKEINTRESOURCE(uBmpResource), IMAGE_BITMAP, 0, 0, LR_LOADMAP3DCOLORS); pStatic->ModifyStyle(0xF, SS_BITMAP); pStatic->SetBitmap(hBitmap); }
hellengoodd
2013-01-18
打赏
举报
回复
不难啊,书里都有源代码给你参考
燕子lovinglife
2013-01-18
打赏
举报
回复
图片显示的我做出来了,可否哪位大神指导一下怎么在对话框按下按钮保存bmp图片呢
hdg3707
2013-01-18
打赏
举报
回复
首先在CTestDlg类中声明一个变量: CBitmap m_bmp; 然后我们在对话框中加入一个picture 标签,名为IDC_STATIC1,然后: BOOL CDisplayPic::OnInitDialog() { CDialog::OnInitDialog(); if( m_bmp.m_hObject != NULL )//判断 m_bmp.DeleteObject(); //载入图片 HBITMAP hbmp = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), "c:\\aaa.bmp", IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION|LR_LOADFROMFILE); if( hbmp == NULL ) return FALSE; //该断程序用来取得加载的BMP的信息// m_bmp.Attach( hbmp ); DIBSECTION ds; BITMAPINFOHEADER &bminfo = ds.dsBmih; m_bmp.GetObject( sizeof(ds), &ds ); int cx=bminfo.biWidth; //得到图像宽度 int cy=bminfo.biHeight; //得到图像高度 /////////////////// //////////////////////////////// //得到了图像的宽度和高度后,我们就可以对图像大小进行适应, //即调整控件的大小,让它正好显示一张图片 //////////////////////////////////////////////////// CRect rect; GetDlgItem(IDC_STATIC1)->GetWindowRect(&rect); ScreenToClient(&rect); GetDlgItem(IDC_STATIC1)->MoveWindow(rect.left,rect.top,cx,cy,true);//调整大小 return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } 图片加载成功了,标签大小也适应了,下面就是绘制绘制图像了,打开类向导,重载WM_PAINT消息 void CDisplayPic::OnPaint() { //////////////以下三种情况任选一种会是不同效果(只能一种存在)/////////// //CPaintDC dc(this); //若用此句,得到的是对话框的DC,图片将被绘制在对话框上. CPaintDC dc(GetDlgItem(IDC_STATIC1)); //用此句,得到picture控件的DC,图像将被绘制在控件上 //CDC dc; //dc.m_hDC=::GetDC(NULL); //若用此两句,得到的是屏幕的DC,图片将被绘制在屏幕上 /////////////////////////////////////////////////////// CRect rcclient; GetDlgItem(IDC_STATIC1)->GetClientRect(&rcclient); CDC memdc; memdc.CreateCompatibleDC(&dc); CBitmap bitmap; bitmap.CreateCompatibleBitmap(&dc, rcclient.Width(), rcclient.Height()); memdc.SelectObject( &bitmap ); CWnd::DefWindowProc(WM_PAINT, (WPARAM)memdc.m_hDC , 0); CDC maskdc; maskdc.CreateCompatibleDC(&dc); CBitmap maskbitmap; maskbitmap.CreateBitmap(rcclient.Width(), rcclient.Height(), 1, 1, NULL); maskdc.SelectObject( &maskbitmap ); maskdc.BitBlt( 0, 0, rcclient.Width(), rcclient.Height(), &memdc, rcclient.left, rcclient.top, SRCCOPY); CBrush brush; brush.CreatePatternBrush(&m_bmp); dc.FillRect(rcclient, &brush); dc.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(), &memdc, rcclient.left, rcclient.top,SRCPAINT); brush.DeleteObject(); // Do not call CDialog::OnPaint() for painting messages }
燕子lovinglife
2013-01-18
打赏
举报
回复
我现在是个很初级的学生,大神们给我的不是很懂,能不能给个详细的步骤啊?跪求了
MFC
对话框
中
点击
按钮
打开
bmp
图片
并
显示
在
pic
tu
re
中
,同时可以另存
在这个场景
中
,我们关注的是如何在
对话框
中
的
Pic
tu
re控件(通常是CStatic或CMFCToolBarImageControl)
显示
BMP
图片
,并提供一个功能让
用户
能够
点击
按钮
打开
新的图像,同时还能实现
图片
的另存。以下是一些关键知识点...
MFC 在
对话框
显示
图片
的多种方法
接着,在
对话框
上添加一个
Pic
tu
re控件,通过属性设置将其类型设为BITMAP,并从下拉框
中
选择
已导入的
图片
。运行程序后,
图片
会
显示
在
Pic
tu
re控件
中
。 2. **设置背景图** 如果希望
图片
作为
对话框
的背景,可以创建一...
基于
对话框
打开
图像文件
在编程领域,尤其是在Windows应用程序开发
中
,"基于
对话框
打开
图像文件"是一个常见的功能,它允许
用户
通过一个标准的文件
选择
对话框
来选取并加载
图片
到应用
中
的特定控件,如
Pic
tu
re控件。这个功能主要涉及到两个核心...
VC++
对话框
(CDialog)添加背景
图片
在Visual S
tu
dio
中
,
打开
资源视图(Resource View),找到
对话框
(Dialog)节点,右键
点击
并
选择
“插入
对话框
”(Insert Dialog)。设计好
对话框
的控件布局后,保存
对话框
资源。 接下来,我们要处理背景
图片
的加载...
带有放大镜窗口的MFC
对话框
图片
读取和浏览
2. **
Pic
tu
re控件**:在MFC
中
,我们可以使用CStatic类来
显示
静态文本或图像,当设置其风格为SS_BITMAP时,它就可以作为
图片
控件使用,加载并
显示
BMP
格式
的
图片
。 3. **放大镜窗口**:这个特性允许
用户
查看图像的...
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章