1

对于具有滚动条(如 CListCtrl 和 CEdit)的 MFC 控件,为什么自定义滚动条的外观如此困难?

在 XP MFC 中,我们可以获得 WM_NCPAINT 并可能以某种方式更改滚动条的绘制,但正如我在其他论坛中注意到的那样,当您尝试自定义绘制滚动条时,这些控件是“反击”。因此,即使是专业的 MFC 编码人员也不会尝试这样做,更不用说像我这样的新手了。

使用 WindowsCE,我们甚至不会收到 WM_NCPAINT 消息。

给出的建议始终是使用 CWnd 从头开始​​编写您自己的控件。那么,有一个框架有什么意义呢?好的,还有更多的好处,比如消息系统,bla bla bla,但我认为定制外观和感觉对于产品差异化很重要。虽然我知道 Windows 希望每个程序的外观和感觉都相同,但我认为这次他们做得过火了。iOS 和 Android 在这里获胜,通常我们在应用程序之间仍然具有大致相同的外观和感觉(控件的行为符合预期),但根据自己的喜好设置控件的外观仍然有效。

好了,废话不多说。现在的问题变成了……除了从头开始还有其他选择吗?

4

3 回答 3

2

简短的回答:不。

稍长一点的答案:MFC 控件不是他们自己的东西,真的。它们只是 Windows 本身提供的控件的最小包装。而且,正如您所注意到的,Win32 没有提供用户绘制的滚动条。它们只是不是为此而设计的。

于 2012-03-31T09:29:09.287 回答
2

我同意你的看法......我最终设法通过使用这篇文章来做到这一点。如果你想试一试......祝你好运!

于 2012-03-31T20:12:58.220 回答
0

我是 Xtreme Toolkit Pro (MFC) - http://www.codejock.com/products/toolkitpro/的快乐用户。他们有一个可能适合你的皮肤框架。是的,这是商业的。但我推荐他们并没有任何个人利益。

于 2012-03-31T13:08:08.110 回答