トップページ > 過去ログ > 記事閲覧
縁無しウィンドウ
名前:Foo 日時: 2007/09/23 22:29

ご無沙汰しております。 ウィンドウの縁がちょっと太くて気になるので縁無しウィンドウにできたらいいなぁと考えているのですが、方法はあるでしょうか。 SetWindowStyleModeで3を指定すると(子Window扱いになるとのことで)実行時にタスクバーから消えてしまいますし、なんだか×ボタンも小さくなってしまいますし。 どうしたものでしょうか。 よろしくお願いいたします。

Page: 1 |

Re: 縁無しウィンドウ ( No.1 )
名前:優柔不断 日時:2007/09/24 00:16

Dxライブラリだけでは無理です。Win32 APIの関数である SetWindowLong()→GetWindowLong()の組み合わせでいけます。 Dxライブラリの関数では、ウィンドウハンドルを得る関数GetMainWindowHandle()を使います。 long oldstyle; HWND hMainWindow; if(DxLib_Init()==-1)return -1; hMainWindow=GetMainWindowHandle(); oldstyle=(long)GetWindowLong(hMainWindow,(int)GWL_STYLE); oldstyle^=WS_BORDER; SetWindowLong(hMainWindow,GWL_STYLE,oldstyle); でいけるはずです。
できました! ( No.2 )
名前:Foo 日時:2007/09/24 12:49

>優柔不断様 ありがとうございます。 なるほどWin32API使うのですね。 教えていただいたコードを出発点に試行錯誤の末、目的のWindow描画を得ることができました。 以下が最終的な自分のコードです。 HWND m_hWnd = GetMainWindowHandle(); DWORD dwExStyle = GetWindowLong(m_hWnd, GWL_EXSTYLE); dwExStyle &= ~WS_EX_WINDOWEDGE; dwExStyle &= ~WS_EX_CLIENTEDGE; SetWindowLong(m_hWnd, GWL_EXSTYLE, dwExStyle); SetWindowPos(m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER | SWP_FRAMECHANGED);

Page: 1 |