怎么用VC++6.0编写图片浏览器

2025-05-05 11:39:42

1、​打开VC++6.0,新建一个MFC工程,工程取名【ShowPic】;步骤:【文件】--【工程】--【MFC Appwizard[exe]】--【工程名】--【位置】--【确定】

怎么用VC++6.0编写图片浏览器

2、选择【基本对话框】,然后直接点击【完成】,这里我们全部默认MFC应用程序向导的剩余步骤

怎么用VC++6.0编写图片浏览器

3、MFC向导直接给我们生成了一个对话框,这个对话框是可以编译运行的,不过没有什么功能而已

怎么用VC++6.0编写图片浏览器

4、在对话框上单击鼠标右键,选择【属性】,默认对话框ID,更改标题为:百度经验图片秀,在更改的同时,对话框的标题就及时的更改了

怎么用VC++6.0编写图片浏览器

5、在控件里选择【图片控件】,拖放到对话框里,并拖拽为需要的大小

怎么用VC++6.0编写图片浏览器

6、在图片控件上单击鼠标右键,选择【属性】,ID改为:IDC_Showing,标题默认为位图

怎么用VC++6.0编写图片浏览器

7、继续点选属性里的【样式】标签,选取【凹陷】、【图像居中】、【真实大小图像】

怎么用VC++6.0编写图片浏览器

8、在控件里选择【按钮控件】,在对话框中添加一个按钮控件,在其属性页更改ID为:IDC_Open,标题改为:打开位图

怎么用VC++6.0编写图片浏览器

9、编译,运行程序,此时的图片秀还没有具体功能,不过所需资源已经就位

怎么用VC++6.0编写图片浏览器

10、第一个关键点到了,为按钮控件绑定函数。打开【MFC ClassWizard】,在Class name下选择CShowPicDlg类,Object IDs下选择按钮着抹较氰控件的ID:IDC_Open,在Message下选择BN_CLICKED,然后点击Add Function按钮,在弹出的对话框内填写OnBtnOpenBmp(这个是函数名),点击OK,然后点击EditCode编辑函数

怎么用VC++6.0编写图片浏览器

11、在打开的ShowPicDlg.cpp文件中OnBtnOpenBmp()位置添加以下代码:CFileDialog dlg(TRUE,"bmp",".bmp",OFN_HIDEREADONLY,"BMP Files(*.bmp)|*.bmp||");if(dlg.DoModal() != IDOK) { return;}m_path = dlg.GetPathName(); //获得图片路径UpdateData(false); //更新路径公共变量ShowPic(); //调用显示图片函数

怎么用VC++6.0编写图片浏览器

12、在头文件ShowPicDlg.h添加CShowPicDlg类需要的函数和成员变量声明public:void CShowPicD造婷用痃lg::ShowPic();private:CString m_path;RECT rect;BITMAP bm;HBITMAP hBitmap;HDC hSrcDC;HDC hDesDC;CWnd *hwnd;

怎么用VC++6.0编写图片浏览器

13、继续转回ShowPicDlg.cpp文件中,编写ShowPic()函数体,代码如下:oid CShowPicDlg::S茑霁酌绡howPic() {if(m_path=="") //判断图片路径是否存在{return;}hwnd = GetDlgItem(IDC_ShowImg);hDesDC = hwnd->GetDC()->m_hDC;hSrcDC = CreateCompatibleDC(hDesDC);hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),m_path,IMAGE_BITMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);GetObject(hBitmap, sizeof(BITMAP), &bm);SelectObject(hSrcDC, hBitmap);hwnd->GetClientRect(&rect);::SetStretchBltMode(hDesDC,COLORONCOLOR); ::StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC,0, 0, bm.bmWidth, bm.bmHeight,+SRCCOPY);UpdateData(false);}

怎么用VC++6.0编写图片浏览器

14、编译,运行,打开图片,显示图片都正常,但是当程序被覆盖或者拖拽到屏幕边缘再恢复时,被覆盖的部位图片消息了?

怎么用VC++6.0编写图片浏览器

15、这是因为在控件恢复的时候没有重绘图片,我们需要在OnPaint()内添加负责重绘图片控件的代码,如下://更新windows窗口,如果无这步调用,图片显示还会出现问题CDialog::UpdateWindow(); ShowPic(); //重绘图片函数

怎么用VC++6.0编写图片浏览器

16、再次编译,运行,一切正常,至此,百度经验图片秀编写完成了

怎么用VC++6.0编写图片浏览器
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢