我想用消息函数SendMessage中的参数传递一个float变量,可是WPARAM,LPARAM好像不太合适,请问如何传递?

解决方案 »

  1.   

    都是4个字节,WPARAM,LPARAM都可以,做一下类型转换就行了
      

  2.   

    SendMessage()发送浮点数是不行了。因为sendmessage的参数为UINT和long,你传浮点数,会被编译器转成整数或长整数,所以会失败。有两个办法可以解决:   1,将数值扩大1000或10000倍,发送,然后再缩小相就倍数
       2,传指针
      

  3.   

    传地址,而且通过类型强制转换,不会丢失精度,因为你在内部处理的时候再重新强制转换为float型,这样的话,取得的是该地址的float数值,是一个正确的值
      

  4.   

    比如说我在消息中传递一个数组::sendmessage(hWnd, WM_RECEIVE, 0, (LPARAM)Arr);
    我在接受函数里怎么转化这个数组的地址啊,它的地址被自动的转化成一个10进制的整型了
      

  5.   

    void* arr = (void*)lParamvoid*可以改成你需要的地址类型,比如int*