Re: プログラムのタイトルバーの「×」を消す方法について
Kake
居住地: 愛媛県松山市
投稿数: 36
既に解決しているかも知れませんが。
User32.dll(Win32.API)で実現できるはずです。
[×]そのものを消してしまうと、[×]を復元できなくなるので
[×]を無効にするほうが良いと思います。
技術的には
1.ウィンドウハンドル(Winhwnd 関数で取得する。)からシステムウィンドウのハンドルを取得する。
([×]はシステムメニューに属する)
2.[×]を無効にする。
3.システムウィンドウを再表示する。
(無効にした設定内容を反映させる為)
という手順です。
1.は、
calldll ('User32.GetSystemMenu','444',ウィンドウハンドル,0)
2.は、
calldll ('User32.EnableMenuItem','4444',上記1で取得した値,Hval ('F060'),1)
3. は、
calldll ('User32.DrawMenuBar','44',上記1で取得した値)
上記2.の最後のパラメータ(=1)が無効を示しています。
一旦無効にした[×]を有効にするには、上記2.の最後のパラメータを0で1.〜3.を実行すれば良いです。
calldllの戻り値は数値型で10桁用意すれば良いでしょう。
(もちろん、1.〜3.ごとに別々に用意すべきです。)
注意点としては、
・リッチクライアントでは使えません。
・クライアントOSがWindows系である必要があります。
お役に立てば幸いです。
User32.dll(Win32.API)で実現できるはずです。
[×]そのものを消してしまうと、[×]を復元できなくなるので
[×]を無効にするほうが良いと思います。
技術的には
1.ウィンドウハンドル(Winhwnd 関数で取得する。)からシステムウィンドウのハンドルを取得する。
([×]はシステムメニューに属する)
2.[×]を無効にする。
3.システムウィンドウを再表示する。
(無効にした設定内容を反映させる為)
という手順です。
1.は、
calldll ('User32.GetSystemMenu','444',ウィンドウハンドル,0)
2.は、
calldll ('User32.EnableMenuItem','4444',上記1で取得した値,Hval ('F060'),1)
3. は、
calldll ('User32.DrawMenuBar','44',上記1で取得した値)
上記2.の最後のパラメータ(=1)が無効を示しています。
一旦無効にした[×]を有効にするには、上記2.の最後のパラメータを0で1.〜3.を実行すれば良いです。
calldllの戻り値は数値型で10桁用意すれば良いでしょう。
(もちろん、1.〜3.ごとに別々に用意すべきです。)
注意点としては、
・リッチクライアントでは使えません。
・クライアントOSがWindows系である必要があります。
お役に立てば幸いです。
投票数:0
平均点:0.00
投稿ツリー
-
プログラムのタイトルバーの「×」を消す方法について
(Tatara, 2012-5-18 12:52)
- Re: プログラムのタイトルバーの「×」を消す方法について (hiro, 2012-5-22 14:33)
- Re: プログラムのタイトルバーの「×」を消す方法について (Kake, 2012-5-28 21:32)