无法检索传递给 unicode 窗口的 wchar 文本

问题描述

我正在通过使用 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 (将#修改为@)