C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: フォームのタイトルバー上でのマウスの移動の検知


(過去ログ 30 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■14376 / inTopicNo.1)  フォームのタイトルバー上でのマウスの移動の検知
  
□投稿者/ 倉田 有大 (123回)-(2008/02/16(Sat) 20:24:11)

分類:[C#] 

こんばんは、倉田 有大です。
フォームのタイトルバー上でのマウスの移動を検知するほうほうはあるでしょうか?
FormのMouseMoveイベントだと、タイトルバー上だと検知してくれませんでした。(0未満になる?)
行いたいことは、マウスがタイトルバー上を通過すると、MenuSripを表示するといったことを行いたいのです。
引用返信 編集キー/
■14377 / inTopicNo.2)  Re[1]: フォームのタイトルバー上でのマウスの移動の検知
□投稿者/ 倉田 有大 (124回)-(2008/02/16(Sat) 20:39:02)
No14376 (倉田 有大 さん) に返信
> こんばんは、倉田 有大です。
> フォームのタイトルバー上でのマウスの移動を検知するほうほうはあるでしょうか?
> FormのMouseMoveイベントだと、タイトルバー上だと検知してくれませんでした。(0未満になる?)
> 行いたいことは、マウスがタイトルバー上を通過すると、MenuSripを表示するといったことを行いたいのです。

あかん、肩がこると駄目だorz日本語がちょっと変になるorz
引用返信 編集キー/
■14378 / inTopicNo.3)  Re[1]: フォームのタイトルバー上でのマウスの移動の検知
□投稿者/ やじゅ (168回)-(2008/02/16(Sat) 20:41:53)
やじゅ さんの Web サイト
No14376 (倉田 有大 さん) に返信
> フォームのタイトルバー上でのマウスの移動を検知するほうほうはあるでしょうか?

WndProcをオーバーライドして、マウスポインタがキャプションにあるかで判断可能
かと思われます。


WndProcをオーバーライドする方法
http://dobon.net/vb/dotnet/form/moveform.html

HTCAPTION
http://www.winapi-database.com/Message/WM/WM_NCHITTEST.html
引用返信 編集キー/
■14381 / inTopicNo.4)  Re[2]: フォームのタイトルバー上でのマウスの移動の検知
□投稿者/ 倉田 有大 (125回)-(2008/02/16(Sat) 21:11:03)
2008/02/16(Sat) 21:11:17 編集(投稿者)
No14378 (やじゅ さん) に返信
> ■No14376 (倉田 有大 さん) に返信
>>フォームのタイトルバー上でのマウスの移動を検知するほうほうはあるでしょうか?
> 
> WndProcをオーバーライドして、マウスポインタがキャプションにあるかで判断可能
> かと思われます。

やじゅさんありがとうございます。出来ました^^
コードは下記のようになりました。

 protected override void WndProc(ref Message m)
        {
            base.WndProc(ref m);
            
            const int WM_NCHITTEST = 0x84;
            const int HTCAPTION = 2;

            //マウスポインタがクライアント領域内にあるか
            if (m.Msg == WM_NCHITTEST)
            {
                if (m.Result.ToInt32() == HTCAPTION)
                {
                    this.menuStrip1.Visible = true;
                }
                else
                {
                    this.menuStrip1.Visible = false;
                }
            }
        }

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -