C++ 如何创建自定义皮肤,如WinAmp

C++ 如何创建自定义皮肤,如WinAmp,c++,c,user-interface,C++,C,User Interface,我猜这个问题以前有人问过,但我还没有找到足够的答案,甚至还没有开始到处乱翻。大多数答案是指直接捕捉WM_绘制方法并进行自定义渲染,或者使用onwer绘制对象。然而,我没有看到一个集中的地方有信息。开始研究。因此,这是一个问题 我的目标是创建一个具有自定义外观的非常简单的GUI程序。我更喜欢winamp通过“皮肤”定制定制外观的方式。但是,我对使用GTK+、QT或wxWidget之类的跨平台库不感兴趣 我在系统编程方面有一些经验,但在GUI方面没有太多经验。我花了大部分时间开发控制台应用程序,我刚

我猜这个问题以前有人问过,但我还没有找到足够的答案,甚至还没有开始到处乱翻。大多数答案是指直接捕捉WM_绘制方法并进行自定义渲染,或者使用onwer绘制对象。然而,我没有看到一个集中的地方有信息。开始研究。因此,这是一个问题

我的目标是创建一个具有自定义外观的非常简单的GUI程序。我更喜欢winamp通过“皮肤”定制定制外观的方式。但是,我对使用GTK+、QT或wxWidget之类的跨平台库不感兴趣

我在系统编程方面有一些经验,但在GUI方面没有太多经验。我花了大部分时间开发控制台应用程序,我刚刚开始做一些QT开发。如果你能给我指出正确的方向,我将不胜感激


PS:我对windows和linux环境都感兴趣。

GUI皮肤通常使用插件机制

GUI皮肤通常使用插件机制

我想这正是您想要的:


我想这正是你想要的:

各位

很抱歉迟了答复。我有机会与winamp的原始开发人员进行了一次快速交谈,以下是我的快速回答:

  • 使用皮肤:艺术家创建皮肤,开发者将渲染皮肤
  • 对操作系统(Windows)来说,winamp只是一个漂亮的盒子,其他什么都没有。有一个容器窗口,就是这样
  • 所有控件(按钮、标签、列表等)都由winamp团队自己实现。所有消息和内容都作为相对位置传递到容器窗口。WinAmp和GUI引擎必须决定是否单击了按钮,或者按钮旁边的标签是否是目标,等等
  • 呈现用XML创建的艺术家皮肤
  • 我不知道他们是否使用任何库来完成所有这些,但我怀疑他们确实直接钩住了一个窗口调用,并且自己进行自定义渲染。

    各位

    很抱歉迟了答复。我有机会与winamp的原始开发人员进行了一次快速交谈,以下是我的快速回答:

  • 使用皮肤:艺术家创建皮肤,开发者将渲染皮肤
  • 对操作系统(Windows)来说,winamp只是一个漂亮的盒子,其他什么都没有。有一个容器窗口,就是这样
  • 所有控件(按钮、标签、列表等)都由winamp团队自己实现。所有消息和内容都作为相对位置传递到容器窗口。WinAmp和GUI引擎必须决定是否单击了按钮,或者按钮旁边的标签是否是目标,等等
  • 呈现用XML创建的艺术家皮肤

  • 我不知道他们是否使用任何库来完成这一切,但我怀疑他们确实直接挂接了一个窗口调用,并且自己进行自定义渲染。

    您对使用跨平台库不感兴趣,但您想同时支持Windows和Linux吗?你是说你打算写两次应用程序?使用OpenGl。这是一个跨平台的硬件加速图形库,类似于DirectX。Fernandes,我只是对实际创建自定义GUI的底层实现感兴趣,而不是如何使用这些库。我不打算支持这两种操作系统,只是出于教育目的。您对使用跨平台库不感兴趣,但您想同时支持Windows和Linux?你是说你打算写两次应用程序?使用OpenGl。这是一个跨平台的硬件加速图形库,类似于DirectX。Fernandes,我只是对实际创建自定义GUI的底层实现感兴趣,而不是如何使用这些库。我不打算支持这两个操作系统,只是出于教育目的。如有人问,我不打算使用跨平台库,包括QTPuel。如有人问,我不打算使用跨平台库,包括QT