デスクトップ上にライン描画 – プログラミング – Home

デスクトップ上にライン描画
 
通知
すべてクリア

[解決済] デスクトップ上にライン描画


ドルドル
 ドルドル
(@ドルドル)
ゲスト
結合: 19年前
投稿: 96
Topic starter  

 いつもお世話になります。VC++6.0 MFCで開発を行っています。先日 フックについて
質問させて頂きました。それを利用してマウスフックを行っています。その際に現在 
マウスのデスクトップ上の位置に十字線や矩形を描きたいのですが、どうようにすれば
いいのでしょうか?? キャプチャーソフトなどではよく付加されている機能です。
 また、指定色でラインを描画させることもできるのでしょうか??
 ご教授よろしくお願いします。


引用未解決
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

ウィンドウ内に描画する方法はご存知でしょうか?
それが分かれば、CClientDC の代わりに CWindowDC を使うだけです。

CWindowDC dc(NULL); // NULLはデスクトップ
dc.MoveTo(100,100);
dc.DrawTo(200,200);


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

十字線というのはカーソルのことでしょうか。
LoadCursorでIDC_CROSSを指定すれば
十字カーソルのハンドルが返ります。


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

>LoadCursorでIDC_CROSSを指定すれば
>十字カーソルのハンドルが返ります。
MFCでした。
LoadStandardCursorかな。


返信引用
ドルドル
 ドルドル
(@ドルドル)
ゲスト
結合: 19年前
投稿: 96
Topic starter  

dairygoods さん。subaruさん。ありがとうございます。

>CClientDC の代わりに CWindowDC を使うだけです。
 おかげさまで うまくいきました。以前に少しだけですがCDCを利用したことがありま
したので、そこから調べていけばよかったのかと思いました。
>十字線というのはカーソルのことでしょうか。
 いえ 現在のマウスのあるところに十字線を描くということです。

 しかしながら 一つ疑問があります。フック時に WM_MOUSEMOVE メッセージの受け取
ると 現在のマウスのポジションにラインを描くという処理をしていますが このまま動
かすとずっとラインが残ってしまい デスクトップ上が十字線だらけになってしまいま
す。
 いろいろ調べていくと ラインをXORで書きながら 以前のラインを消せばいいみたい
なのですが、ラインを XORモードみたいなを決めるメソッドってあるのですか??
また これを応用して矩形を書きたいのですが、矩形領域を塗りつぶさないブラシのモ
ードなどはあるのでしょうか??

 長々と質問させていただきましたが よろしくお願いします。


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

>いろいろ調べていくと ラインをXORで書きながら 以前のラインを消せばいいみたい
>なのですが、ラインを XORモードみたいなを決めるメソッドってあるのですか??

線を引くならCDC::SetROP2が使えます。
塗りつぶすならCDC::InvertRectが使えます。


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 19年前
投稿: 381
 

>また これを応用して矩形を書きたいのですが、矩形領域を塗りつぶさないブラシのモ
>ードなどはあるのでしょうか??
ついスルーしてしまいましたがRectangleで描くって意味かな?
NULL_BRUSHを使いたいならCreateStockObjectっていうのがありますけど・・・


返信引用
ドルドル
 ドルドル
(@ドルドル)
ゲスト
結合: 19年前
投稿: 96
Topic starter  

subaruさん。dairygoods さん。ありがとうございます。
>線を引くならCDC::SetROP2が使えます。
 はい。無事にラインおよび矩形を描くことができました。ありがとうございます。
 今後もよろしくお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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