2017-02-17 7 views
0

winapiを使用して、外部ウィンドウのすべての境界線を完全に削除しようとしています。外部ウィンドウの境界を完全に削除する

は、今のところ私はこのコードを使用することにより、以下の結果を達成した:

enter image description here

public static int GWL_STYLE = -16; 
    public static int WS_BORDER = 0x00800000; //window with border 
    public static int WS_DLGFRAME = 0x00400000; //window with double border but no title 
    public static int WS_CAPTION = WS_BORDER | WS_DLGFRAME; //window with a title bar 
    private const int WS_SYSMENU = 0x00080000;  //window with no borders etc. 
    private const int WS_MAXIMIZEBOX = 0x00010000; 
    private const int WS_MINIMIZEBOX = 0x00020000; //window with minimizebox 

     public static void HideWindowBorders(IntPtr hWnd) 
    { 
     int style = GetWindowLong(hWnd, GWL_STYLE); //gets current style 
     SetWindowLong(hWnd, GWL_STYLE, (style & ~WS_CAPTION)); //removes caption from current style 
    } 

これは、キャプションと(妙にのみウィンドウをリサイズ後の)最小/最大/クローズボタンを削除します。ただし、ウィンドウのサイズ変更を可能にする細い枠線は削除されません。

どのように枠線を削除できますか?

+0

WS_THICKFRAMEウィンドウスタイルをクリアしましたか?ウィンドウが "サイズ変更"ボーダーを持っているかどうかを制御しています。限り、サイズ変更後に変更する限り、ウィンドウの非クライアント領域を無効にする必要があります。 p/RDW_FRAMEフラグを指定してRedrawWindow()を呼び出してみてください。 – Tim

+0

@Tim:いいえ、[documentation](https://msdn.microsoft.com/en-us/library/windows/desktop/ms644898.aspx)に従い、[SetWindowPos](https:// msdn新しいフレームスタイルを適用するには、マイクロソフトのWebサイト(.microsoft.com/ja-jp/library/windows/desktop/ms633545.aspx)を参照してください。 – IInspectable

答えて

0
 public const uint WS_SIZEBOX = 0x00040000; 

    public static void HideWindowBorders(IntPtr hWnd) 
    { 
     int style = GetWindowLong(hWnd, GWL_STYLE); //gets current style 
     SetWindowLong(hWnd, GWL_STYLE, (uint)(style & ~(WS_CAPTION | WS_SIZEBOX))); //removes caption and the sizebox from current style 
    } 
0

あなたが探しているものは、〜WS_CAPTIONではなくWS_POPUPです。

たぶんこのスタイルを追加してみてください:

はその後長いので、同様にウィンドウをseettiing

public const uint WS_POPUP = 0x80000000; 
:ちょうどさらに説明する

SetWindowLong(hWnd, GWL_STYLE, WS_POPUP); 

、WS_POPUPは基本的にあなたを残し任意のサイズ/サイズ変更、最小/最大化を削除します単純なウィンドウで。

+0

いいえ、 'WS_POPUP'はそれを行いません。 'WS_POPUP' **は単独で動作します**。既にそこにあったすべてのスタイルを 'WS_POPUP'に置き換えています。 'WS_CAPTION'を削除するのが正しい解決策ですが、完全な解決策ではありません。 – andlabs

+0

私はそれを試してみましたが、ウィンドウがポップアップのときには対話できません。ウィンドウをクリックすると、ポップアップのように表示されます。 – Sturm

関連する問題