对于具有滚动条(如 CListCtrl 和 CEdit)的 MFC 控件,为什么自定义滚动条的外观如此困难?
在 XP MFC 中,我们可以获得 WM_NCPAINT 并可能以某种方式更改滚动条的绘制,但正如我在其他论坛中注意到的那样,当您尝试自定义绘制滚动条时,这些控件是“反击”。因此,即使是专业的 MFC 编码人员也不会尝试这样做,更不用说像我这样的新手了。
使用 WindowsCE,我们甚至不会收到 WM_NCPAINT 消息。
给出的建议始终是使用 CWnd 从头开始编写您自己的控件。那么,有一个框架有什么意义呢?好的,还有更多的好处,比如消息系统,bla bla bla,但我认为定制外观和感觉对于产品差异化很重要。虽然我知道 Windows 希望每个程序的外观和感觉都相同,但我认为这次他们做得过火了。iOS 和 Android 在这里获胜,通常我们在应用程序之间仍然具有大致相同的外观和感觉(控件的行为符合预期),但根据自己的喜好设置控件的外观仍然有效。
好了,废话不多说。现在的问题变成了……除了从头开始还有其他选择吗?