假设我想向我的WndProc发送消息,但我想发送一个整数。
SendMessage (m_hWnd, WM_DISPLAYCHANGE, NULL, int?);
我的WndProc会收到它吗?然后我想将lParam(整数)发送给函数。
case WM_DISPLAYCHANGE:
{
pD2DResources->OnRender(lParam);
}
break;
如何将整数作为lParam或wParam发送,然后将该整数作为参数重新发送给函数?
答案 0 :(得分:1)
LPARAM和WPARAM只是一个长期的typedef。所以int可以按原样发送。
SendMessage(m_hWnd, WM_DISPLAYCHANGE, NULL, (LPARAM)yourInt)
在你的wnd proc中,你可以做到
pD2DResource->Render((int)lParam)
当您将这些自定义信息作为标准Windows消息(WM_USER下面的消息编号)的一部分发送时,您应该小心不要将窗口proc中收到的LPARAM值直接传递给DefWindowProc(默认窗口proc) - 因为你的可能对该特定标准Windows消息具有特殊含义。您可以将窗口过程中的固定值传递给DefWindowProc,或者查看通过LPARAM / WPARAM传递超过4个字节信息的其他方法。由于SendMessage是同步的,您可以传递结构的地址 - 就像许多标准的Windows消息一样。