日本語版MSDNのCreateWindow関数のlParamの解説が意味不明な件

概要

MSDNの日本語版の記述がインチキ臭いのは周知の事実らしいが、CreateWindowのlParamの扱いを調べていて、いくらなんでもわからんだろという気がしたので書いておく。

これが日本語版MSDNのCreateWindow関数のlParamの解説

lpParam
メッセージの lParam パラメータで渡される 構造体に入れてウィンドウに渡される値へのポインタを指定します。MDI クライアントウィンドウを作成する場合、 構造体へのポインタを指定しなければなりません。

なんかCreateWindowのlParamで渡した値がそのままウィンドウプロシージャのlParamとして渡されそうな記述に見えなくもない。でも構造体ってなんぞ?試しにやってみると、ぜんぜん期待したとおりの値が戻ってこない。

ほんとはどうなのか

これが英語版MSDNのCreateWindow関数のlParamの解説

LPVOID
Pointer to a value to be passed to the window through the CREATESTRUCT structure (lpCreateParams member) pointed to by the lParam param of the WM_CREATE message.
This message is sent to the created window by this function before it returns. If an application calls CreateWindow to create a MDI client window, lpParam should point to a CLIENTCREATESTRUCT structure.
If an MDI client window calls CreateWindow to create an MDI child window, lpParam should point to a MDICREATESTRUCT structure. lpParam may be NULL if no additional data is needed.

最初の段落だけ訳すと、「WM_CREATEメッセージのlParamに渡されるCREATESTRUCT構造体のメンバとして渡される値」と言ったところか。
日本語版MSDNでは、明らかにメッセージ名も構造体の名前も抜け落ちている。

補足しておくと、WM_CREATEメッセージのときのlParamはCREATESTRUCTとなっていて、そのメンバのlpCreateParamsが、CreateWindowのlParamとして渡した値となる。

トラックバック(0)

トラックバックURL: https://blog.fairy-land.jp/MT/mt-tb.cgi/40

コメント(1)

これ知らなくて時間を無駄にしまいした 書いてくれてありがとうございます

コメントする

このブログ記事について

このページは、鋼のインフラ担当が2010年5月 3日 20:12に書いたブログ記事です。

ひとつ前のブログ記事は「Hyper-V 2.0上のCentOSにLinux統合コンポーネント2.0を導入するとフリーズする問題【解決】」です。

次のブログ記事は「日産ピノにLOOX U50X/Vを車載してナビにしてみた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

カテゴリ

ウェブページ

Powerd By

Powered by Movable Type 6.3.2

Google Adsense