拡張メタファイルの描画 <TOP>
既存の拡張メタファイルを読み込み描画します。
GetEnhMetaFileDescription 拡張メタアプリケーション名の取得
GetEnhMetaFile 拡張メタファイルのオープン
PlayEnhMetaFile 拡張メタファイルの描画
DeleteEnhMetaFile 拡張メタファイルの削除
GetDC デバイスコンテキストのハンドルを取得
ReleaseDC デバイスコンテキストを解放
例では、拡張メタファイルの作成で作成されたメタファイルを読み込み描画しています。
'================================================================ '= 拡張メタファイルの描画 '= (GetEnhMetaFileDescription.bas) '================================================================ #include "Windows.bi" Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type ' 拡張メタアプリケーション名の取得 Declare Function Api_GetEnhMetaFileDescription& Lib "gdi32" Alias "GetEnhMetaFileDescriptionA" (ByVal hEmf&, ByVal DescSize&, ByVal Descrption$) ' 拡張メタファイルのオープン Declare Function Api_GetEnhMetaFile& Lib "gdi32" Alias "GetEnhMetaFileA" (ByVal MetaFileName$) ' 拡張メタファイルの描画 Declare Function Api_PlayEnhMetaFile& Lib "gdi32" Alias "PlayEnhMetaFile" (ByVal hDC&, ByVal hEmf&, ByRef rct As RECT) ' 拡張メタファイルの削除 Declare Function Api_DeleteEnhMetaFile& Lib "gdi32" Alias "DeleteEnhMetaFile" (ByVal hEMF&) ' 指定されたウィンドウのクライアント領域または画面全体を表すディスプレイデバイスコンテキストのハンドルを取得 Declare Function Api_GetDC& Lib "user32" Alias "GetDC" (ByVal hWnd&) ' デバイスコンテキストを解放 Declare Function Api_ReleaseDC& Lib "user32" Alias "ReleaseDC" (ByVal hWnd&, ByVal hDC&) Var Shared Picture1 As Object Var Shared Button1 As Object Picture1.Attach GetDlgItem("Picture1") Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14 '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var hDC As Long Var rct As RECT Var hEmf As Long Var Ret As Long 'PictureBoxのデバイスコンテキスト取得 hDC = Api_GetDC(Picture1.GethWnd) '既存拡張メタファイルオープン hEmf = Api_GetEnhMetaFile("C:\_FB_API_E\__C\tempEMF.emf") '描画領域を設定 rct.Left = 0 rct.Top = 0 rct.Right = Picture1.GetWidth rct.Bottom = Picture1.GetHeight '拡張メタファイル描画 Ret = Api_PlayEnhMetaFile(hDC, hEmf, rct) '拡張メタファイルクローズ Ret = Api_DeleteEnhMetaFile(hEmf) 'デバイスコンテキスト解放 Ret = Api_ReleaseDC(Picture1.GethWnd, hDC) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End