2

glfwopenWindow関数呼び出しを使用して作成されたウィンドウから最大化ボタンを削除するにはどうすればよいですか?

現在、私がやっていることは次のとおりです。

windowHandle = GetForegroundWindow();
long Style = GetWindowLong(windowHandle, GWL_STYLE);
Style ^= WS_MAXIMIZEBOX;
SetWindowLong(windowHandle, GWL_STYLE, WS_MAXIMIZEBOX);

ここで、ウィンドウ ハンドルを取得し、最大化ビットを切り替えます。次に、ウィンドウ スタイルを再適用します。しかし、これは機能せず、ボタンやタイトル バーのないウィンドウが完全に空白になります。とにかく最大化ボタンを削除することはありますか。サイズ変更関数が呼び出されるたびにウィンドウ サイズを変更したくない

4

1 に答える 1

5

古いスタイルを返さないため、コードにバグがあり、 を除くすべてのスタイルフラグをクリアすると、次のようWS_MAXIMIZEBOXになります。

windowHandle = GetForegroundWindow();
long Style = GetWindowLong(windowHandle, GWL_STYLE);
Style &= ~WS_MAXIMIZEBOX; //this makes it still work when WS_MAXIMIZEBOX is actually already toggled off
SetWindowLong(windowHandle, GWL_STYLE, Style);

GetWindowlongPtrまた、将来のx64互換性を計画している場合は、ベースの関数を実際に使用する必要があります

于 2011-11-07T08:14:04.693 に答える