2009-03-05 6 views
3

ActiveXコントロールをExcelでうまく印刷するようにしようとしています。C++ ActiveXコントロールをExcelでうまく印刷するにはどうすればよいですか?

コントロールはC++で記述されています。もともと私はVisual Studio 2005ウィザードを使ってコントロールを生成しました。私はOnDraw関数を実験する簡単なウィザードで生成されたコントロールを使ってこれをテストしましたが、ウィザードのすぐ上のコントロールでもうまく印刷できないことがわかりました。コントロールの大部分をクリップアウトするように見えます。デフォルトでは、黒いアウトラインとテキストが中央にレンダリングされます。

関数IDataObject_GetDataは、ActiveXコントロールで呼び出され、メタファイルを作成してレンダリングします。

ActiveXコントロールをうまく印刷する方法を知っている人はいますか?あるいは、有益な情報へのリンクが評価されます。

答えて

2

多くの頭が傷ついた後、私は自分の問題を解決しました。

Visual Studio 2005ウィザードで生成されたOnDraw関数は、関数SelectClipRgnを呼び出してクリッピング領域を設定します。これは、ActiveXコントロールが印刷時に切り取られて見えるようにするこのクリッピング設定でした。コードをコメントアウトすると、ActiveXコントロールが完全に印刷されます。コードをコメントアウトしても、少なくとも私の場合は他の問題が発生するようには見えません。

私は、メタファイルDCに描画するときに使用される座標系との間で、クリッピングに使用される座標系は互換性がないと仮定できます。ここで

は、私は、ActiveXコントロールを印刷について見つけ便利な情報へのリンクです:

http://www.codeproject.com/KB/COM/officeatlprint.aspx

http://www.codeproject.com/KB/COM/WirgerPrintArticle.aspx

http://support.microsoft.com/kb/81497

http://support.microsoft.com/kb/84984