C++とGDI+でメタファイルを描画したいのですが、ブラシとペンがプログラムで作成したものに置き換えられるように変更します。メタファイル自体で指定されている他のブラシの代わりに、このブラシとこのペンを使用したいと思います。
どうすればこれを達成できますか?
EnumerateMetafileとPlayRecordを使おうとしましたが、使用しているペンとブラシを制御する方法がわかりません。以下のコードを試して、基になるHDCの現在のペンとブラシを選択しましたが、予想どおりに機能しません...
何か提案はありますか?(すべてのEMFレコードタイプの完全な処理を書き直さないようにしたい)
前もって感謝します。
暫定コード(期待どおりに何もしません):
// callback function called by EnumerateMetafile:
BOOL CALLBACK metaCallback(
EmfPlusRecordType recordType,
unsigned int flags, unsigned int dataSize, const unsigned char* pStr, void* metafile)
{
HDC hdc = myGraphics->GetHDC ();
SelectObject(hdc, GetStockObject(WHITE_PEN));
myGraphics->ReleaseHDC(hdc);
static_cast <Metafile*>(metafile)->PlayRecord(recordType, flags, dataSize, pStr);
return TRUE;
}