2011-01-22 16 views
2

Windows呼び出しからプログラミングするのは初めてのことです。パラメータをlpfnWndProc関数に渡す方法を理解しようとしています。Windowsでのウィンドウ呼び出しへのパラメータの受け渡し

HWND hwnd; 
WNDCLASS wc1 = {0}; 

wc1.lpszClassName = TEXT("sample"); 
wc1.hInstance  = 0; 
wc1.hbrBackground = GetSysColorBrush(COLOR_3DFACE); 
wc1.lpfnWndProc = DepthWndProc; 

注私はDepthWndProcにパラメータを渡すことができアムwc1.lpfnWndProc = DepthWndProc;ライン:私は、次のコードを持っていますか?もしそうなら、構文はどのように見えますか?

ありがとうございます!

+1

ここを参照してください:http://relisoft.com/win32/winnie.html - Win32プログラミングに関する素晴らしいチュートリアルです。 – yasouser

答えて

0

あなたはDepthWndProcを直接呼び出すことができ、そのパラメータを渡すことができますが、なぜあなたはそれを行うでしょうか?それはWindowsプログラミングの仕組みではありません。

ウィンドウに送信するメッセージがある場合はいつでも、ウィンドウに電話をかけることができます。

1

ここでは、コールしないで関数ポインタを割り当てています。したがって、引数の通過はありません。

HWNDで余分な状態を保存することは珍しいことではありません。たとえば、ウィンドウの周りにC++クラスのラッパーを配置する必要があります。ウィンドウハンドル値からラッパー・オブジェクトを検索するのに役立つように、マップ<を保持する必要があります。 GWLP_USERDATAでのSetWindowLongPtr()の使用は、ウィンドウの作成を制御しない場合でも可能ですが、あまり理想的ではありません。

関連する問題