M FC 在对话框显示图片的多种方法 我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定 ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一个基于对话框的工程,名为 Ttest. 对话框类为 CTestDlg (一) 非动态载入图片. 方法1.先从最简单的开始,用 picture 控件来实现. 步骤: 先在资源里 Import 一张图片,ID 为 IDB_BITMAP2 然后在对话框上添加一个 picture 控件,右键点击打开属性, 将 type 下拉框选择 BITMAP,紧跟着下面就出现一个Image 下拉框, 拉开就会看到所有已经载入好的图片, 选择你要的图片.运行程序即可看到. 方法2.通过背景图 同样如上,先载入一张图片,ID 为 IDB_BITMAP2 TestDlg.h 中 CBrush m_brBk;//在 public 中定义 TestDlg.cpp 中 在初始化函数 OnInitDialog()中加入: BOOL CTestDlg::OnInitDialog() { CDialog::OnInitDialog(); CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP2); m_brBk.CreatePatternBrush(&bmp); bmp.DeleteObject(); . . . return TRUE; // return TRUE unless you set the focus to a control } 在打开类向导,找到WM_CTLCOLOR 消息,重载得对应函数OnCtlColor(),添加如下: HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if (pWnd == this) { return m_brBk; } return hbr; } (二) 动态载入图片. 方法3 图像控件(本例用KoDak 图像编辑控件) 1. 首先应该保证系统中有这个控件。注意,它不能单独使用,必须和其他几个控件(特别是Imgcmn.dll)一同使用。如果没有,从别的机器上copy 过来即可。这几个文件是 Imgadmin.ocx,Imgcmn.dll,Imgedit.ocx,Imgscan.ocx,Imgshl.dll,Imgthumb.ocx,Imgutil.dll,把它们 copy 到windows\system 目录下,然后用regsvr32.exe 将它们分别注册。 2. 打开工程,进入资源管理器,在对话框上单击右键,单击 Insert Activex control… 选择 Kodak 图象编辑控件,大小任意。 3. 在对话框上选中该控件,为其添加变量:m_ctrlPicture。。 4. 在 BOOL CTestDlg::OnInitDialog()添加如下: BOOL CTestDlg::OnInitDialog() { CDialog::OnInitDialog(); m_ctrlPicture.SetImage("aa.jpg...