ハッチのカスタマイズについて – プログラミング – Home

ハッチのカスタマイズについて
 
通知
すべてクリア

[解決済] ハッチのカスタマイズについて


Aquarium
 Aquarium
(@Aquarium)
ゲスト
結合: 22年前
投稿: 29
Topic starter  

お世話になっております。

いま、線画及び図形を描画する
アプリケーションを作成しています。
その中でCBrushのハッチブラシを使っているのですが、
ハッチブラシによって描かれるハッチは間隔が常に一定で
線種も決まったものになってしまっています。

そのため、自由にハッチを変更できるように
したいのですが、自分でハッチを描画して
クリッピングする方法のほかに
ハッチブラシのハッチの間隔や線種を
変更する方法はあるのでしょうか。

ご存知の方がいらっしゃいましたらどうぞご教授ください。

開発環境はWinXp Pro VC++6.0 SP 5 MFC(exe)です。
よろしくお願いいたします。


引用未解決
トピックタグ
FUCKT
 FUCKT
(@FUCKT)
ゲスト
結合: 22年前
投稿: 4
 

CBrush::CreatePatternBrush()使えばできるのでは?


返信引用
Aquarium
 Aquarium
(@Aquarium)
ゲスト
結合: 22年前
投稿: 29
Topic starter  

FUCKTさんレスありがとうございます。

MSDNのCBrush::CreatePatternBrush()を見てみたのですが、
使えるビットマップが8×8ピクセルとありました。
そのため、教えていただいたのに申し訳ないのですが
間隔を自由に可変したり線種を変えたりするのは
少し厳しいと思います。

やはり自分で描画するしかないのでしょうか・・・


返信引用
FUCKT
 FUCKT
(@FUCKT)
ゲスト
結合: 22年前
投稿: 4
 

Windows NT/2000/XPの場合8X8以上も使用可能のようです。
Windows2000で実際試してみたら出来ました。
Win95にも対応する必要があるなら、ビットマップでタイルパターン作ってBitBlt()で繰り返し
タイルを描画するしかないですね。
Win98に関しては、情報ソースによって対応/非対応が違っているので正確なところはわかりま
せん。


返信引用
Aquarium
 Aquarium
(@Aquarium)
ゲスト
結合: 22年前
投稿: 29
Topic starter  

返答が遅れて申し訳ありません。

>Windows NT/2000/XPの場合8X8以上も使用可能のようです。

試してみたところ確かに使えました。
(ちなみに98SE以前はサポートしないのでOKです)
で、
CBrush::CreatePatternBrush()
をつかうことにして、
動的にビットマップを作成するようにしたのですが、
当然のことながらハッチの間隔が広がるほど
ビットマップが大きくなってしまう、
また一点鎖線や二点鎖線を描画することが非常に困難、
などの理由から
FUCKTさんには申し訳ないのですが
結局自分でハッチを描画してクリッピングするように
してしまいました。

お騒がせしてすみませんでした。

#どこかにWindowsAPIの詳細なソース転がってないかなー


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました