C++ 试图从消息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参数的值?函数不能更改通过

我在我的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参数的值?

函数不能更改通过值传入的参数

但是,您可以在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;