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

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

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

C# リサイズ用のマウスカーソル表示をさせない方法について

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

■95735 / inTopicNo.1)  C# リサイズ用のマウスカーソル表示をさせない方法について
  
□投稿者/ az (14回)-(2020/09/11(Fri) 10:30:43)

分類:[.NET 全般] 

C# で フォームアプリケーション開発をしています。
開発環境は Visual Studio 2017 Express for Windows Desktopを使用しています。

以下のサイトを参考にし、フォームサイズの変更ができないフォームを作成しました。
https://www.fenet.jp/dotnet/column/language/4012/

実装方法については上記サイト2例目の方法(MaximumSizeとMinimumSizeをSizeと同じ値にする) で
対応しています。


// MaximumSizeとMinimumSizeを同じにすることでサイズ固定にする
this.MaximumSize = this.Size;
this.MinimumSize = this.Size;
// 最大化・最小化の無効
this.MaximizeBox = false;
this.MinimizeBox = false;


この場合、マウスカーソルをフォームの端に持っていくと
カーソル形状が「サイズ変更用」のものに変わってしまいます。
(SizeNSなど)


マウスカーソルを変更しない方法や、マウスカーソル変更を捕捉する方法について教えていただけないでしょうか。




引用返信 編集キー/
■95736 / inTopicNo.2)  Re[1]: C# リサイズ用のマウスカーソル表示をさせない方法について
□投稿者/ Hongliang (1087回)-(2020/09/11(Fri) 10:53:02)
FormBorderStyleをFixed系にすればその辺もケアしてくれますが、何か不都合がありましたか?

対象フォームのWndProcをオーバーライドして、WM_NCHITTEST時にHTLEFT等のResultを書き換えることで対応はできます。
https://www.ipentec.com/document/csharp-winform-border-only-window-block-resize
https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-nchittest
// 一つ目でHTCLIENTに書き換えてるけどHTBORDERに書き換えたほうがよさそう。
引用返信 編集キー/

このトピックをツリーで一括表示


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

このトピックに書きこむ