如何创建像WinAmp的自定义皮肤

时间:2011-10-12 23:48:33

标签: c++ c user-interface

我猜这个问题之前已被问过,但我还没有找到足够的答案,甚至开始探索。大多数答案是指直接捕捉WM_PAINT方法并进行自定义渲染,或使用onwer绘制对象。但是,我没有看到有信息的集中地方。开始研究。因此,问题。

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

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

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

3 个答案:

答案 0 :(得分:3)

每个人,

很抱歉迟到的回复。我有机会与winamp的原始开发人员进行快速交谈,这是我的快速答案:

  1. 使用皮肤:艺术家创建皮肤,开发人员将渲染皮肤
  2. 对于操作系统(Windows),winamp只是一个漂亮的盒子,没有别的。有一个容器窗口,就是这样
  3. 所有控件(按钮,标签,列表等)都由winamp团队自己实现。所有消息和内容都作为相对位置传递给容器窗口。 WinAmp和GUI引擎必须决定是否单击按钮或其旁边的标签是否为目标等。
  4. 渲染以XML格式创建的艺术家皮肤
  5. 我没有详细说明他们是否使用任何库来做所有这些,但我怀疑他们是直接挂钩窗口调用,并自己进行自定义渲染。

答案 1 :(得分:0)

GUI皮肤通常使用插件机制

答案 2 :(得分:0)