★初心者にVisual C++を教えるスレ★ Part5
レス数が900を超えています。1000を超えると表示できなくなるよ。
0943デフォルトの名無しさん
NGNG固定の図形なら >>936 でいいですが、動的ならだめです。
プログラムで拡張メタファイルつくるなら
CMetaFileDC mdc ;
HENHMETAFILE hemf ;
CClientDC dc(hwnd) ;
CRect rect(0, 0, 500, -500) ;
mdc.CreateEnhanced(&dc, NULL, &rect, "MyApp") ;
mdc.MoveTo( 0, 0 );
mdc.LineTo( 40, 15 );
hemf = mdc.CloseEnhanced() ;
こんな感じ。この例ではローカルにhemfを宣言してるけど
グローバルか、MFCならCxxxAppのメンバー変数にしたほうがよいです。
CxxxApp::InitInstance()の中でm_pMainWndを作った後に
CClientDC dc(m_pMainWnd) ;
でCreateEnhanced()に渡すdcを作ってメタファイルを作るのがいいタイミング。
CxxxApp::ExitInstance()をオーバーライドして
DeleteEnhMetaFile(hemf) でメタファイルを破棄する
リソースにメタファイルを含めることもできたはずだけどやり方忘れた。
レス数が900を超えています。1000を超えると表示できなくなるよ。