none
CustomLineCapの塗りつぶしでエラーが起きる RRS feed

  • 質問

  • CustomLineCapで塗りつぶしを行うと、エラーが発生します。

     

    線分の先端に黒丸(●)をつけようとしています。

    黒丸の大きさをユーザに選択させたいので、CustomLineCapを使用しようと思ったのですが、

    CustomLineCapに塗りつぶしを定義するオブジェクトを設定すると、エラーが起きます。

    アウトラインを設定する場合は、エラーが起きません。

    解決方法をご存知ないでしょうか。

     

    サンプルコードを下記に記します。

    -------------------------

    //パス
    GraphicsPath hPath = new GraphicsPath();

    //円を追加

    hPath.AddEllipse(new Rectangle(0, 0, 5, 5));

     

    //アウトラインだとエラーが起きない

    CustomLineCap(null,hPath);

     

    //塗りつぶしだとエラーが起きる

    CustomLineCap(hPath,null);

    -------------------------

     

    エラー内容

    'System.NotImplementedException' のハンドルされていない例外が ****.dll で発生しました。

    追加情報: 実装されていません。

     

     




    2011年3月24日 9:54

回答

  • 先端を●にするだけであれば、標準の終端 RoundAnchor ではダメでしょうか?

    GDI+ は、全てのメソッドにすべてのパラメータの組み合わせがサポートされておらず、戻り値が E_NOTIMPL (NotImplementException 例外) になるものが、いくつか含まれています。そういった機能にあたってしまったということになります。

    おそらく、終端処理では線と線の接続等を GraphicsPath に与えるパラメータとして設定することができますので、接合等の設定を行える描画を意味する path type を設定できないのでは?とか、なんとなく思います。個人的には、WPF や Direct2D の登場もあって、今後も GDI+ の機能が拡充されることはあまり期待できないので、そういった機能を使わずに目的を達成できるように工夫するしかないと思っています。

    • 回答としてマーク kk1200 2011年3月25日 4:45
    2011年3月24日 12:04

すべての返信

  • 先端を●にするだけであれば、標準の終端 RoundAnchor ではダメでしょうか?

    GDI+ は、全てのメソッドにすべてのパラメータの組み合わせがサポートされておらず、戻り値が E_NOTIMPL (NotImplementException 例外) になるものが、いくつか含まれています。そういった機能にあたってしまったということになります。

    おそらく、終端処理では線と線の接続等を GraphicsPath に与えるパラメータとして設定することができますので、接合等の設定を行える描画を意味する path type を設定できないのでは?とか、なんとなく思います。個人的には、WPF や Direct2D の登場もあって、今後も GDI+ の機能が拡充されることはあまり期待できないので、そういった機能を使わずに目的を達成できるように工夫するしかないと思っています。

    • 回答としてマーク kk1200 2011年3月25日 4:45
    2011年3月24日 12:04
  • ご回答ありがとうございます。

    黒丸の大きさをユーザに選択させたかったため、RoundAnchorを使用しないよう考えていました。

    また、昔からのプログラムのため、GDI+を使用しない、となるとプログラム変更にかなり時間がかかりそうです。。。

    描画のところで、何とか頑張ってみようかと思います。

    ありがとうございました。

    2011年3月25日 4:43