dus*_*usm 5 c++ winapi wndproc
我有这个抽象代码:我想在 CreateWindowEx() 中使用 lParam(最后一个参数)来保存指向在 main - SaveArr 开头声明的类的指针。然后,我想在函数 WndProc 中使用它。一开始我做了一个全局数组,然后我可以在任何地方使用它,但就 C++ 而言它不是那么“聪明”,所以我试图升级它。
class Samples
{
int arr[ITERATIONS+1];
int index;
...
}
INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
Samples * SaveArr;
...
hWnd = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW,
ClsName,
WindowCaption,
WS_OVERLAPPEDWINDOW,
INITIAL_WIN_LOCAT_X,
INITIAL_WIN_LOCAT_Y,
WIN_WIDTH,
WIN_HIGHT,
NULL,
NULL,
hInstance,
NULL); //here i want to pass SaveArr, so that i can use it in the WndProc(...) function
...
return 0;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
... //here i would like to use lParam as the class pointer, meaning using the
SaveArr declared in the main function.
}
}
Run Code Online (Sandbox Code Playgroud)
来自参考:
lpParam [输入,可选]
Run Code Online (Sandbox Code Playgroud)Type: LPVOID Pointer to a value to be passed to the window through the
WM_CREATE消息的lParam参数指向的CREATESTRUCT结构(lpCreateParams成员)。该消息在返回之前由该函数发送到创建的窗口。
Run Code Online (Sandbox Code Playgroud)If an application calls CreateWindow to create a MDI client
窗口中,lpParam 应该指向 CLIENTCREATESTRUCT 结构。如果MDI客户窗口调用CreateWindow来创建MDI子窗口,lpParam应该指向MDICREATESTRUCT结构。如果不需要附加数据,lpParam 可以为 NULL。
您期望 lParam 始终传递到 WndProc,但它仅与 WM_CREATE 一起传递。
请注意,即使如此,它也不是直接传递的,而是通过一个结构传递的,该结构是 WM_CREATE 的实际 lParam。
归档时间: |
|
查看次数: |
5785 次 |
最近记录: |