打开增强型图元文件并显示其内容

【勇芳软件工作室】汉化HomePreviousNext

本节包含一个示例,演示应用程序如何打开存储在磁盘上的增强型图元文件,并在客户区域中显示关联的图片。

该示例使用“打开”公共对话框以使用户能够从现有文件列表中选择增强型图元文件。然后将所选文件的名称传递给GetEnhMetaFile函数,该函数返回一个标识文件的句柄。该句柄被传递给PlayEnhMetaFile函数以显示图片。

LoadString(hInst,IDS_FILTERSTRING,

(LPSTR)szFilter, sizeof(szFilter));

/*

*替换'%'字符串分隔符的出现

*与'\\ 0'。

*/

for (i=0; szFilter[i]!='\0'; i++)

if (szFilter[i] == '%')

szFilter[i] = '\0';

LoadString(hInst,IDS_DEFEXTSTRING,

(LPSTR)szDefExt, sizeof(szFilter));

/*

*使用OpenFilename公共对话框

*以获得所需的文件名。

*/

szFile[0] = '\0';

Ofn.lStructSize = sizeof(OPENFILENAME);

Ofn.hwndOwner = hWnd;

Ofn.lpstrFilter = szFilter;

Ofn.lpstrCustomFilter = (LPSTR)NULL;

Ofn.nMaxCustFilter = 0L;

Ofn.nFilterIndex = 1L;

Ofn.lpstrFile = szFile;

Ofn.nMaxFile = sizeof(szFile);

Ofn.lpstrFileTitle = szFileTitle;

Ofn.nMaxFileTitle = sizeof(szFileTitle);

Ofn.lpstrInitialDir = (LPSTR) NULL;

Ofn.lpstrTitle = (LPSTR)NULL;

Ofn.Flags = OFN_SHOWHELP | OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

Ofn.nFileOffset = 0;

Ofn.nFileExtension = 0;

Ofn.lpstrDefExt = szDefExt;

GetOpenFileName(&Ofn);

/ *打开图元文件。*/

hemf = GetEnhMetaFile(Ofn.lpstrFile);

/ *检索窗口DC的句柄。*/

hDC = GetDC(hWnd);

/ *检索客户矩形维度。*/

GetClientRect(hWnd, &rct);

/ *画画。*/

PlayEnhMetaFile(hDC, hemf, &rct);

/ *释放元文件句柄。*/

DeleteEnhMetaFile(hemf);

/ *释放窗口DC。*/

ReleaseDC(hWnd, hDC);