1

HWND私がwin32 c++プログラミングでウィンドウを持っているとしましょう。プログラムでまったく同じスタイルの別のウィンドウを作成するにはどうすればよいですか? 使用する必要があることはわかっていますがCreateWindowEx、渡す既存のウィンドウのすべてのパラメーターを見つけるにはどうすればよいCreateWindowExですか?

4

3 に答える 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);

これにより、既存のスタイル ( dwStyleparameter to CreateWindowEx) と拡張スタイル ( dwExStyleparameter CreateWindowEx) が取得されます。

GetWindowLongまた、直接呼び出すべきではないことにも注意してください。この場合は無害ですが、64 ビット Windows ではポインターが機能しないため、習慣にすることはお勧めできません。GetWindowLongPtr代わりに呼び出す必要があるものとして文書化されています。

于 2013-08-09T21:14:20.017 に答える
2

GetWindowLong()GWL_STYLE フラグと GWL_EXSTYLE フラグの両方を照会するために使用します。

于 2013-08-09T21:15:28.373 に答える