我正在尝试制作我的第一个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。非常感谢您提供的任何帮助或提示。谢谢!
将双精度转换为字符串并将字符串指针转换为lparam:
double d_number;
wchar_t buffer[30];
swprintf(buffer, 30, L"%g", d_number);
SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)buffer);