我想这个问题以前有人问过,但我还没有找到足够的答案,甚至开始四处打听。大多数的答案是直接捕获WM_PAINT方法并进行自定义渲染,或者使用onwer draw对象。但是,我没有看到一个集中的地方有信息。开始研究。因此,这个问题。
我的目标是创建一个非常简单的GUI程序,并对其进行自定义查看。我更喜欢winamp通过“皮肤”进行定制的方式。但是,我对使用一些跨平台库(如GTK+、QT或wxWidget)不感兴趣。
我在系统编程方面有一些经验,但在GUI方面没有太多经验。我花了大部分时间开发控制台应用程序,我刚刚开始做一些QT开发。如果你能给我指出正确的方向,我将不胜感激。
PS:我对windows和linux环境都感兴趣。

最佳答案

各位,
很抱歉回信迟了。我有机会与winamp的原始开发人员进行了一次快速交谈,以下是我的快速回答:
使用皮肤:艺术家创建皮肤,开发人员将呈现皮肤
对操作系统(Windows)来说,winamp只是一个漂亮的盒子,而不是别的。有个集装箱窗口,就这样
所有控件(按钮、标签、列表等)都由winamp团队自己实现。所有消息和资料都作为相对位置传递到容器窗口。WinAmp和GUI引擎必须决定是否单击了某个按钮,或者它旁边的标签是否是目标,等等。
以XML创建的呈现艺术家皮肤
我不知道他们是否使用任何库来完成这一切,但我怀疑他们确实直接挂接了一个窗口调用,并且自己进行了自定义呈现。

08-17 03:51