好的,所以我对 C++ 和 Windows API 很陌生,我只是在编写一个小应用程序。我希望我的应用程序在 XP、Vista 和 Windows 7 中都使用视觉样式,所以我将这一行添加到我的代码顶部:
#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
它似乎在我的 Windows 7 机器和 Vista 机器上完美运行。但是当我在 XP 上尝试该应用程序时,该应用程序不会加载任何控件(例如按钮、标签等)——甚至不会显示消息框。
此图像显示了一个小型测试应用程序,我刚刚将它放在一起以演示我要解释的内容:http: //img704.imageshack.us/img704/2250/myapp.png
在这个测试应用程序中,我没有使用任何特别花哨或复杂的代码。我实际上只是从 MSDN 库 ( http://msdn.microsoft.com/en-us/library/ff381409.aspx ) 中获取了最基本的示例代码,并在 WM_CREATE 消息中添加了一个部分来创建一个按钮:
MyBtn = CreateWindow(L"Button", L"My Button", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE, 25, 25, 100, 30, hWnd, NULL, hInst, 0);
但我只是无法弄清楚发生了什么以及为什么它不起作用。有什么想法吗?提前谢谢你。
(顺便说一句,如果我从顶部删除清单部分,应用程序在 XP 中的工作方式 - 显然没有视觉样式。我还应该提到该应用程序是在 Windows 7 机器上使用 Visual C++ 2010 Express 构建的 - 如果这使得区别?)