掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
マウスが乗っているオブジェクトに独自(?)の枠を表示するには? (ID:27925)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
真琴:「ねぇ、ハルコさん、ハルコさん、ちょっと来てぇ〜」 春子:「どうした? マコト」 真琴:「面白そうだからぁ、アタシ、ちょっとプログラム書いてみたの」 春子:「ン? なにを?」 真琴:「これよ、ハルコさん」 var hW, pW: HWND; procedure DrawFrameRect(W: HWND); var R: TRect; begin if W = 0 then exit; with TCanvas.Create do try Handle := GetWindowDC(0); // スクリーンのDC Brush.Style := bsClear; Pen.Mode := pmXOR; Pen.Color := clRed xor Brush.Color; Pen.Width := 3; GetWindowRect(W, R); Rectangle(R.Left, R.Top, R.Right-2, R.Bottom-2); finally Free; end; end; procedure TForm1.Timer1Timer(Sender: TObject); var P: TPoint; begin GetCursorPos(P); hW := WindowFromPoint(P); if (pW <> hW) then begin DrawFrameRect(pW); DrawFrameRect(hW); pW := hW; end; end; procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if Button = mbLeft then begin pW := 0; Timer1.Interval := 50; Timer1.Enabled := True; end; end; procedure TForm1.Edit1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Timer1.Enabled := False; DrawFrameRect(hW); end; 真琴:「Edit1の上でマウスの左ボタン押してぇ、そのまま、マウス動かすとぉ…」 春子:「ふ〜ん、マウスポインタの所のWindowに赤い枠が…、なかなかヤルじゃないの、マコト」 真琴:「でしょ?」 春子:「だけど、マコト、これって複数のWindowが少し重なってる時に、下のWindowにマウス動かすと…」 真琴:「ジツはそうなンだぁ、上側のWindowの所にも赤枠が描かれちゃうの、だからぁ…」 春子:「上側のWindowが自動的に描き換えられた場合に、赤枠が消えずに残っちゃうね」 真琴:「ぅン、そうなのねぇ…これ、なんとかならないかなァ」 春子:「簡単よ、マコト、重なった部分の上側には赤枠が描かれないようにすればいいんじゃない」 真琴:「えっ、カンタン?、そうなの?」 春子:「ココだけ、このようにぃ…チョット書き換えれば…、これで…ヨシ、試してごらん、マコト」 procedure DrawFrameRect(W: HWND); var R: TRect; begin if W = 0 then exit; with TCanvas.Create do try // Handle := GetWindowDC(0); // スクリーンのDC Handle := GetWindowDC(W); // 対象WindowのDC Brush.Style := bsClear; Pen.Mode := pmXOR; Pen.Color := clRed xor Brush.Color; Pen.Width := 3; GetWindowRect(W, R); // Rectangle(R.Left, R.Top, R.Right-2, R.Bottom-2); // スクリーン上に描画 Rectangle(0, 0, R.Right-R.Left-2, R.Bottom-R.Top-2); // 対象Window上に描画 finally Free; end; end; 真琴:「あっ!、ホント」 春子:「ね?、ちゃんとウマクいくでしょ」 真琴:「こんなにカンタンに直せたのネ」 春子:「ま、発想の転換ってコトかな?」 客A:「あのぉ〜、予約していた者ですけどぉ〜」 真琴:「あ、お客さんが…」 春子:「え?、…アッ、はいはい、ご予約の方ですネ、今すぐ…、あっ、ア〜ッ!!」 *ドタン!!* 春子:「イタ〜ぁ…」 真琴:「ハルコさん、カラダの転換のほうは…、もう歳?」 春子:「ミソジ前のレディになんてコト言うの、代わりに部屋にお客様 ご案内して…アッイタタぁ〜」
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.