2009-08-25 1 views
2

私はいくつかの従来のMFCアプリケーションを持っています。私はCairo描画エンジンを使ってグラフやグラフを追加したいと思います。MFCで動作するようにCairoグラフィックスを取得する小さな例ですか?

私はそれを動作させる方法の小さな例を探しています。基本的に、PNGまたはGIFファイルを作成したら、その表示をMFC CViewウィンドウでどのように取得できますか?

私のgoogle-fuは良い手がかりを見つけることができません。あなたはすでにあなたが上記のサンプルのようなものを使用することができ、表面を持っていると仮定すると、私のデモサンプルから

答えて

1

// cairo_surface_t *surface; 
// cairo_t *cr; 

// surface = call_win32_surface_create_with_dib_T(CAIRO_FORMAT_ARGB32, 240, 80); 
// cr = call_create_T (surface); 

// call_surface_write_to_png_T (surface, "hello.png"); 


HDC src = call_win32_surface_get_dc_T(surface); // <-------- 
BitBlt(dest, 0, 0, 240, 80, src, 0,0, SRCCOPY); // <-------- 


destは、カイロサーフェスをレンダリングするウィンドウのハンドルです。HDCです。

更新:CView::OnDraw()

あなたはCViewの(?継承)クラスのOnDraw()メソッドを実装する必要があります。
あなたはすなわち、カイロの表面を描画するためのpDCのポインタを使用することができます。

pDC->BitBlt(0, 0, 240, 80, src, 0,0, SRCCOPY); // "HDC src" is mentioned above 
+0

あなたはより多くのサンプルへのリンクを持っていますか?私は何年も何年ものMFCプログラミングを行ってきましたが、単純な組み込み関数(ダイアログ、メニューなど)でしかできませんでした。最後にチャートを作成したときに、図書館を使用しました(ChartFX 98、それがどれぐらい前にあるかがわかっていれば)、すべての図面を処理しました。 –

+0

@エリックH.、私の更新を参照してください。私はCView特有のサンプルを持っていません。 CViewオブジェクトの使い方やCairo APIについてのヘルプがまだ必要な場合は、サンプルを見つけることができましたが、現時点では見つかりませんでした。 –

関連する問題