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

わんくま同盟

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

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

ツリー一括表示

C# リサイズ用のマウスカーソル表示をさせない方法について /az (20/09/11(Fri) 10:30) #95735
Re[1]: C# リサイズ用のマウスカーソル表示をさせない方法につ.. /Hongliang (20/09/11(Fri) 10:53) #95736


親記事 / ▼[ 95736 ]
■95735 / 親階層)  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など)


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




[ □ Tree ] 返信 編集キー/

▲[ 95735 ] / 返信無し
■95736 / 1階層)  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に書き換えたほうがよさそう。
[ 親 95735 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -