将 double 转换为 LPARAM 时出现问题
Troubles converting double to LPARAM
我正在尝试制作我的第一个 Windows 桌面应用程序(到目前为止一直只使用控制台)。这可能是一个真正的菜鸟问题。我正在为从远程测试设备接收串行数据和 logs/displays 趋势分析数据的工作做一些事情。我可以毫不费力地从远程设备获取数据并将其存储到 double 中(数据预计在 0.0000 和 0.9999 之间)。
然后我想使用以下代码获取数据并将其显示在 CreateWindow
编辑控件中:
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
的方法。我已经尝试了所有我能想到的在互联网上找到的方法,其中 none 行得通。我在 Visual Studio Community 2019 工作。非常感谢任何帮助或提示。谢谢!
将双精度转换为字符串并将字符串指针转换为 lparam:
double d_number;
wchar_t buffer[30];
swprintf(buffer, 30, L"%g", d_number);
SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)buffer);
我正在尝试制作我的第一个 Windows 桌面应用程序(到目前为止一直只使用控制台)。这可能是一个真正的菜鸟问题。我正在为从远程测试设备接收串行数据和 logs/displays 趋势分析数据的工作做一些事情。我可以毫不费力地从远程设备获取数据并将其存储到 double 中(数据预计在 0.0000 和 0.9999 之间)。
然后我想使用以下代码获取数据并将其显示在 CreateWindow
编辑控件中:
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
的方法。我已经尝试了所有我能想到的在互联网上找到的方法,其中 none 行得通。我在 Visual Studio Community 2019 工作。非常感谢任何帮助或提示。谢谢!
将双精度转换为字符串并将字符串指针转换为 lparam:
double d_number;
wchar_t buffer[30];
swprintf(buffer, 30, L"%g", d_number);
SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)buffer);