问题描述
我正在通过使用 WNDCLASSEXW 和 RegisterClassExW 注册来创建一个 unicode 窗口。但是我无法将文本传递给它。
在我的窗口过程中,我无法使用 CREATESTRUCTA 或 CREATESTRUCTW lpszName 成员恢复文本。只看到第一个字母。
HWND myCustomWidgetProcedure(HWND h,UINT m,WPARAM w,LPARAM l)
{
if(m == WM_CREATE)
{
// only first letter is printed
std::cout << ((CREATESTRUCTA*)l)->lpszName;
std::wcout << ((CREATESTRUCTW*)l)->lpszName;
}
return 0;
}
LPCWSTR registerMyCustomWidgetProcedureW()
{
WNDCLASSEXW wc{};
wc.cbSize = sizeof(wc);
wc.lpfnWndProc = myCustomWidgetProcedure;
wc.lpszClassName = L"myCustomWidgetW";
return (LPCWSTR)RegisterWindowExW(&wc);
}
HWND createMyCustomWidgetProcedureW(HWND parent)
{
static auto wndClass = registerMyCustomWidgetProcedureW();
return CreateWindowExW(0,wndClass,L"Text I want to display",WS_CHILD,parent,0);
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)