返信ほんとうにありがとうございます
パワーポイント上に透明な線を引くことはできました。
しかし
マウスで線を引くとリアルタイムで透明な線が描画されるのですが
タブレットで線を引くと遅れて線が表示されます
これはDRAWLINEがタブレットの場合では計算処理に時間がかかるからでしょうか??
cretepenを用いてMoveToExと LineTo関数を使ってタブレットで線を引く場合は
線はリアルタイムに表示されます
それとも
プログラムを書き換えることによって
リアルタイムに線を描画することができますか??
たびたびすいません
DRAWLINE関数は描画速度おそいですか??
えーと。
一般的に余計ない仕事をさせれば、遅くなる道理なので
単なるGDIとGDI+を比べたらmGDI+の方が遅いと思いますよ。
まあ、ハードウエアアクセラレータが利いているのかとか
色々な要素があると思うので一概には言えないかもしれませんが。
実際に御自分の環境で試して見てそうなるのであれば、
その環境ではそうなんでしょうとしか言えません。
ハードの環境によっては変わってくるかもしれませんけれど、
その環境で動かさない限り確かめようが有りません。
で、既に単純にGDI+を使っただけのプログラムで出来る事の範疇は
超えていると思うので高速化を考えるのであれば、
GDI+を使ったグラフィック描画に関する専門書等で勉強するとか
しないと無理なんじゃないかと思います。
ある程度、専門的な知識も要求されてくると思うので。
あうあう。
わかると思いますが、
一般的に余計な仕事をさせれば、遅くなる道理なので
単なるGDIとGDI+を比べたらGDI+の方が遅いと思いますよ。
が正しいです。
GDI+の方が多機能で扱いやすい分、GDIに比べて遅くなってるものが多いだろうし、
アルファ値なしでの描画よりアルファブレンドを適用した処理の方が
かなり重いだろうとは想像します。
とはいえ、そこまで劇的に重くなるもんですかね?
どのような環境でどのようなプログラムを実行しているのかわからないので
プログラム的に問題がないと言えるかどうかはわかりません。
いくつか気になる点
1:使用してるマウスとタブレットで入力速度はどのくらい差があるか
(タブレットのほうが反応がよすぎて描画が遅れるほど処理回数が発生してるのではな
いか?)
2:透明描画のときと、createpenで書いたときと、それ以外に処理方法に差はないか?
あと、おまけ
・ダブルバッファなどしてる場合、画面・クライアント領域全体よりも、
2点間を引いた線が入る領域だけを抜いて処理したほうが無駄が少なく早いです
位置計算しないといけないのが面倒だが、全体をコピーするよりゃはるかに早い
大昔にWinTabとWindows Tablet PC Editionを使用した経験で言うと
マウスに比べて、タブレットの方がストローク内の点の数が多いです。
これが原因で描画が遅くなる場合が考えられます。
回避するには、ストローク入力中の描画(リアルタイム描画)では
点数をある程度おろぬいて描画し、ストロークが完了したら、全点での
再描画を行うという方法があります。
みなさん返信ありがとうございました
仲澤@失業者 さんの回答非常に参考になりましたありがとうございます
ありがとうございました
既に本題とは関係ないところですが一つ訂正。
>subaru 2009/11/13(金) 10:47:43
>ちなみに描画内容は一時的なものですぐに壊れてしまうので
>仲澤さんの方法がましだと思いますが、複雑な図形を書く場合は
>リージョンの作成が面倒になります。
SetLayeredWindowAttributes関数の第4引数を
組み合わせて使えることを知りませんでした。
描画内容から半透明ウインドウを作る方法では
(複雑な)リージョンの作成は必要なかったみたいですm(_ _)m