C++ 试图从消息c+;返回值+;mfc
我在我的DLG中使用C++ MFC和声明消息:C++ 试图从消息c+;返回值+;mfc,c++,winapi,mfc,C++,Winapi,Mfc,我在我的DLG中使用C++ MFC和声明消息: LRESULT CMyWnd2::OnMyMessage(WPARAM wParam, LPARAM lParam) { wParam=5; lParam=6; return 0; } 使用代码: WPARAM w=0; LPARAM l=0; SendMessage(hwnd,messageId,w,l); cout<<w<<l<<endl; 如何更改w/l参数的值?函数不能更改通过
LRESULT CMyWnd2::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
wParam=5;
lParam=6;
return 0;
}
使用代码:
WPARAM w=0;
LPARAM l=0;
SendMessage(hwnd,messageId,w,l);
cout<<w<<l<<endl;
如何更改w/l参数的值?函数不能更改通过值传入的参数 但是,您可以在LPRAM中传递指向所需数据结构的指针,并在消息处理程序中修改该数据结构 以下是如何使用它:
int myValueToBeUpdated = 0;
SendMessage(hwnd, messageId, 0, (LPARAM)&myValueToBeUpdated);
cout << myValueToBeUpdated << endl;
LRESULT CMyWnd2::onymessage(WPARAM WPARAM,LPARAM LPARAM)
{
*((WPARAM*)WPARAM)=5;
*((LPARAM*)LPARAM)=6;
返回0;
}
WPARAM w=0;
LPARAM l=0;
SendMessage(hwnd、messageId、(WPARAM)和w、(LPARAM)和l);
我不知道你在问什么。您希望返回什么“值”?你到底想做什么?我正试图更新WPARAM/LPARAMNo的值,现在还不清楚。请通过编辑问题进行扩展,以明确您的问题。@LitalKapara,除非wParam
和lParam
引用了无法直接“更新”这些参数的对象。那没有道理。我猜你是想告诉一些控件或对话框什么的。我正在编辑我的问题
int myValueToBeUpdated = 0;
SendMessage(hwnd, messageId, 0, (LPARAM)&myValueToBeUpdated);
cout << myValueToBeUpdated << endl;
LRESULT CMyWnd2::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
int* p = (int*)lParam;
*p = 42;
return 0;
}
LRESULT CMyWnd2::OnMyMessage(WPARAM wParam, LPARAM lParam)
{
*((WPARAM*)wParam)=5;
*((LPARAM*)lParam)=6;
return 0;
}
WPARAM w=0;
LPARAM l=0;
SendMessage(hwnd,messageId,(WPARAM)&w,(LPARAM)&l);
cout<<w<<l<<endl;