WEB开发网
开发学院软件开发VC 使用GDI+的MFC应用程序的文件打开和保存对话框 阅读

使用GDI+的MFC应用程序的文件打开和保存对话框

 2007-03-17 21:58:43 来源:WEB开发网   
核心提示: o 文件格式的名称(如:" BMP ")o 已用扩展名(如:"*. BMP、*. DIB、*. RLE ")o 在保存对话框中使用的缺省扩展名(如:" BMP ")覆写CGdiplusFileDialog::ConstructMF

o 文件格式的名称(如:" BMP ")

o 已用扩展名(如:"*. BMP、*. DIB、*. RLE ")

o 在保存对话框中使用的缺省扩展名(如:" BMP ")

覆写CGdiplusFileDialog::ConstructMFCStyleFilter构建"MFC 样式"的过滤器(使用一个''|''作为分隔符)

覆写CFileDialog::OnInitDone 和 CFileDialog::OnTypeChange来设置缺省扩展名并装入缺省编码器标识码(m_clsid成员变量)

实现public方法GetCodecCLSID;codec(编码器/译码器)CLSID进一步被传递到Gdiplis::Image::Save函数

覆写CFileDialog::OnFileNameOK以实现文件扩展名检查:

o 如果文件名没有扩展名,使用缺省扩展名和CLSID

o 如果文件名有一个扩展名并且可以被codec信息数组找到,扩展名和相应的CLSID将用来代替缺省值

o 如果文件名有一个扩展名同时不能被codec信息数组找到,它返回TRUE同时对话框保持显示以便用户输入另一个文件名

举例

    #include "GdiplusFileSaveAsDialog.h"
    // ...
    bool CFoo::SaveImage(Image* pImage)
    {
    bool bSaved = false;
    CGdiplusFileSaveAsDialog dlgFile;
    if(IDOK == dlgFile.DoModal())
    {
    CLSID clsid = dlgFile.GetCodecCLSID();
    CString strPathName = dlgFile.GetPathName();
    Status status = pImage->Save(strPathName.AllocSysString(),
    &clsid);
    if(Ok == status)
    {
    bSaved = true;
    }
    }
    return bSaved;
    }

Demo应用程序

上一页  1 2 3 4 5 6  下一页

Tags:使用 GDI MFC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接