将双精度转换为LPARAM的麻烦

问题描述 投票:0回答:1

我正在尝试制作我的第一个Windows桌面应用程序(到目前为止,仅使用控制台)。这可能是一个真正的菜鸟问题。我正在做一些工作,以便从远程测试设备接收串行数据并记录/显示数据以进行趋势分析。我毫不费力地从远程设备获取数据并将其存储为双精度数据(数据应介于0.0000和0.9999之间)。

我想使用以下代码获取数据并将其显示在CreateWindow Edit控件中:

hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, L"EDIT", L"0.000", 
                      WS_VISIBLE | WS_CHILD | ES_LEFT | WS_TABSTOP, 
                      75, output_height, width, height, mainHandle, NULL,
                      (HINSTANCE)GetWindowLongPtr(mainHandle, GWLP_HINSTANCE), NULL);

SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)/* insert num in some way*/);`

无论如何尝试,都找不到将double转换为LPARAM的方法。我已经尝试了各种可以想到的方法,但都无济于事。我正在使用Visual Studio Community2019。非常感谢您提供的任何帮助或提示。谢谢!

c++ desktop-application
1个回答
3
投票

将双精度转换为字符串并将字符串指针转换为lparam:

double d_number;
wchar_t buffer[30];
swprintf(buffer, 30, L"%g", d_number);
SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)buffer);
© www.soinside.com 2019 - 2024. All rights reserved.