2012-06-29 16 views
5

私は、サードパーティ製のdll(プレーンC++)をHDC上に描画しています。 これらの行をC#のビットマップまたはフォームに入れたいと思います。C#Bitmap with C++での描画

私はC++にGraphics.FromImage(ビットマップ) のHBITMAPまたはHDCを渡そうとしましたが、上記の方法のどれも私のために働いていませんでした。 私がしなければならないん/ビットマップ上に描画または上記ドロー(HDC)メソッドを形成するためには何を使用します。MFCでTestAppのすべてがうまく私の質問がある

HWND handle = pStatic->GetSafeHwnd(); 
CDC* dc = pStatic->GetDC(); 

Draw(dc); 

次のコードを使用して作品で

私があなたを助けてくれることを願っています。 C#のビットマップの使用にこのコードを描画するために事前に おかげで、

パトリック

+1

あなたが試したC#コードを投稿できますか? [このGetHdcの例](http://msdn.microsoft.com/en-us/library/9z5820hw(v = VS.80).aspx)とは異なりますか? – PhilMY

答えて

5

 Graphics gr = Graphics.FromImage(MyBitmap); 
     IntPtr hdc = gr.GetHdc(); 
     YourCPPDrawFunction(hdc); 
     gr.ReleaseHdc(hdc); 

YourCPPDrawFunctionの例は次のとおりです。

void YourCPPDrawFunction(HDC hDc) 
    { 
     SelectObject(hDc, GetStockObject(BLACK_PEN)); 
     Rectangle(hDc, 10, 10, 20, 20); 
    } 

直接描画するにはフォーム上にこのコードを使用します。

描画が完了したらGraphics.ReleaseHdc()を呼び出すことを忘れないでください。そうしないと、描画結果は表示されません。