2

我正在使用普通的 Win32 API(我的意思是没有 MFC)来创建一个简单的应用程序。我使用MSDN 中指定的 with 但返回的句柄CreateWindowEx是. 我按照指示拨打了电话,但返回了!所以我怀疑这就是没有创建酒吧的原因。这是怎么回事?请帮忙。STATUSCLASSNAMENULLInitCommonControlsExFALSE

我在 Windows 7 64 位。

hStatusBar = ::CreateWindowExW(
  0,
  L"STATUSCLASSNAME",
  L"",
  WS_VISIBLE|WS_CHILD|WS_BORDER,
  0,0,0,0, hWnd, 0, hInstance, NULL
);
4

2 回答 2

4

您的代码中有一个简单的错误。STATUSCLASSNAME不是一个值,这是一个来自 的常数< commctrl.h >。所以你的代码实际上应该是这样的:

 #include <commctrl.h>
 .
 .
 .
 hStatusBar = ::CreateWindowExW(
 0,
 STATUSCLASSNAME,
 L"",
 WS_VISIBLE|WS_CHILD|WS_BORDER,
 0,0,0,0, hWnd, 0, hInstance, NULL
);

我想您正在查看此http://msdn.microsoft.com/en-us/library/bb775491%28v=VS.85%29.aspx#STATUSCLASSNAME但正如它所指定的那样,左列中有常量而不是值

于 2011-05-20T20:44:52.797 回答
1

如果您使用 W(宽)字符和函数,则必须更改常量名称(参见内部 commcrtl.h)。我用了:

status = CreateWindowExW(0, STATUSCLASSNAMEW,
    L"Spec.chars fine - Czech=Česky", WS_VISIBLE | WS_CHILD | WS_BORDER,
    0, 0, 0, 0, hwnd, 0, NULL, NULL);

似乎没问题。

于 2017-01-15T23:47:17.033 回答