【问题标题】:Win32 status bar with XP styleXP风格的Win32状态栏
【发布时间】:2009-10-15 21:03:19
【问题描述】:

我尝试创建一个带有状态栏的窗口:


#include <commctrl.h>
InitCommonControls();
hStatus = CreateWindowEx(
  0, STATUSCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | SBARS_SIZEGRIP, 
  0, 0, 0, 0, hWnd, (HMENU)IDC_MAIN_STATUS, GetModuleHandle(NULL), NULL);
int statwidths[] = {100, -1};
SendMessage(hStatus, SB_SETPARTS, sizeof(statwidths)/sizeof(int), (LPARAM)statwidths);

一切都很好,只是它是用 Classic 风格而不是 XP 风格绘制的。

请问,如何让它以 XP 风格出现?我是否必须定义一些#define _WIN32_IE 0x0500(我已经有了)?

我使用 MinGW,如果这有什么影响的话......

【问题讨论】:

    标签: winapi mingw statusbar


    【解决方案1】:

    您需要添加一个应用程序清单来告诉它使用 V6 通用控件而不是 V5。

    编辑:有一个MSDN Article 说明如何执行此操作,包括有关如何创建和使用清单的部分。实际上,关于它的 MSDN 文章还有很多,但我认为这篇文章已经充分涵盖了这个主题......

    【讨论】:

    • 需要更多关于清单内容的解释,但无论如何 +1。
    【解决方案2】:

    正如 Jerry 所说,您的应用程序需要一个清单文件。这里有两个链接解释了如何创建它们。

    http://msdn.microsoft.com/en-us/library/ms649781%28VS.85%29.aspx

    http://msdn.microsoft.com/en-us/library/ms997646.aspx

    像往常一样,MSDN 是你的朋友

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-12
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多