Top / .NET備忘録 / 99.小ネタ / 19.SetWindowPos の第2引数

SetWindowPos を使ったコード例をよく見かけるのですが第2引数を間違えているものが非常に多いです。

"int hWndInsertAfter" でググるとたくさん出てきます。
が、winuser.h や SDK を確認すると

BOOL SetWindowPos(
  HWND hWnd,
  HWND hWndInsertAfter,
  int  X,
  int  Y,
  int  cx,
  int  cy,
  UINT uFlags
);

となっており、第2引数は IntPtr もしくは HandleRef です。

もっとも AMD64 アーキテクチャでは関数を呼ぶときにスタックを使わず、レジスタで渡すようになった(最初の4つのパラメータまで。以降はスタック)ので、4G オーバーの数値が無ければ普通に動いてしまうのですけどね。




トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   最終更新のRSS
Last-modified: 2019-07-01 (月) 22:06:35 (82d)