HWND
私がwin32 c++プログラミングでウィンドウを持っているとしましょう。プログラムでまったく同じスタイルの別のウィンドウを作成するにはどうすればよいですか? 使用する必要があることはわかっていますがCreateWindowEx
、渡す既存のウィンドウのすべてのパラメーターを見つけるにはどうすればよいCreateWindowEx
ですか?
質問する
766 次
3 に答える
6
GetWindowInfoは、元のウィンドウから必要なものを取得する必要があります。次のようなWINDOWINFO構造体を返します。
typedef struct tagWINDOWINFO {
DWORD cbSize;
RECT rcWindow;
RECT rcClient;
DWORD dwStyle;
DWORD dwExStyle;
DWORD dwWindowStatus;
UINT cxWindowBorders;
UINT cyWindowBorders;
ATOM atomWindowType;
WORD wCreatorVersion;
} WINDOWINFO, *PWINDOWINFO, *LPWINDOWINFO;
于 2013-08-09T21:16:25.507 に答える
3
DWORD existingStyle = (DWORD)GetWindowLongPtr(hWnd, GWL_STYLE);
DWORD existingExStyle = (DWORD)GetWindowLongPtr(hWnd, GWL_EXSTYLE);
これにより、既存のスタイル ( dwStyle
parameter to CreateWindowEx
) と拡張スタイル ( dwExStyle
parameter CreateWindowEx
) が取得されます。
GetWindowLong
また、直接呼び出すべきではないことにも注意してください。この場合は無害ですが、64 ビット Windows ではポインターが機能しないため、習慣にすることはお勧めできません。GetWindowLongPtr
代わりに呼び出す必要があるものとして文書化されています。
于 2013-08-09T21:14:20.017 に答える
2
GetWindowLong()
GWL_STYLE フラグと GWL_EXSTYLE フラグの両方を照会するために使用します。
于 2013-08-09T21:15:28.373 に答える