0
我有一個父對話框和一個子對話框,當我使用PostMessageW(WM_SMESG,NULL,l_dvalue)將子消息發送給父代時;其中l_Value是雙精度值,但當我收到父母的消息,然後我像雙l_value =(雙)lParam typcasting;然後在l_value值總是顯示0.0,但價值isend父母是0.5什麼是問題爲什麼PostMessageW lparam值在後面的場景中顯示錯誤的值
我有一個父對話框和一個子對話框,當我使用PostMessageW(WM_SMESG,NULL,l_dvalue)將子消息發送給父代時;其中l_Value是雙精度值,但當我收到父母的消息,然後我像雙l_value =(雙)lParam typcasting;然後在l_value值總是顯示0.0,但價值isend父母是0.5什麼是問題爲什麼PostMessageW lparam值在後面的場景中顯示錯誤的值
施放價值0.5整數將被「舍入」;小數被截斷爲更具體。從0.5截斷0.5的結果將始終爲0.但是,lParam不夠大(32位)以保存雙精度值(64位)。
*((long*)(&myFloat))
*((float*)(&lParam))
或者C++的方式:
*reinterpret_cast<long*>(&myFloat)
*reinterpret_cast<float*>(&lParam)