- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
皮肤包括如何CListCtrl的滚动条和列标题
皮肤包括如何CListCtrl的滚动条和列标题
现在,我有几个选择。
我可以购买第三方的清单控制了所有的一个功能的CListCtrl ,并让我的皮肤,但我什至无法找到任何一个地方的价格。
我可以用SkinMagic,ActiveSkin或DirectSkin,但这些产品是速度慢,价格昂贵,不要皮CListCtrl错误控制无闪烁或其他恼人。
我可以从头开始开发我自己的清单管理,并尝试加入拖动和列标题,虚拟列表的支持,多列突出,拖放,删除,列,排序等调整大小,但这样做既可以永远。
.我只能尽量皮肤现有CListCtrl 。
很明显,我选择了后者,因为时间就是生命。
如果我有这样的源代码之前,我自己承担这个任务,它会救了我,即使不那么干净的代码的工作多少个小时。所以,我希望这有助于几个你在那里。
这是很难解释如何做到这一点,因为有这么多不同的元素一起工作,所以你可能只是检查出更好的示范项目。不过这篇文章应该给了我如何做这个好主意。
本文中的代码是在Windows 2000 SP3的开发利用具有共同控制Microsoft的Visual C + + 6.0的DLL文件版本和产品版本5.50.4916.400 5.81.4916.400。此代码还测试在Windows 98第二版。
按时间顺序排列的努力
首先,我必须找到一种方法来定制现有列标题或自己做,而不是为典型的灰色的解决。所以,我的派生类从CHeaderCtrl ,也一本覆盖OnPaint丑陋的灰头功能和使用位图的地方,子类的CHeaderCtrl我CSkinListCtrl类。 This worked while retaining all the functionality of a CHeaderCtrl !这个工作,同时保留所有的一个功能的CHeaderCtrl !
接下来,我必须找到一种方法来定制现有的滚动条,否则自己做。所以,我试图子类CScrollbar类;每当我试图利用GetScollbarCtrl()函数从CListCtrl ,它返回null 。显然,滚动条是不是真的。.不幸的是,这意味着我不得不隐藏现有的滚动条和创建自己的(很多不仅仅是剥皮现有的工作)。
我开始试图隐藏滚动条的CListCtrl ,然后不知怎么创建我自己的。我发现一个解决方案中的滚动条用于隐藏CListCtrl就从菲尔贝特福克斯CodeGuru留言板。这个工作很大,所以我的下一个任务是创建自己的滚动条。
我选择从类派生一个CStatic使用位图并创建滚动条从零开始。过了一段时间的调整和很多,但我得到了创建自定义滚动条和工作包括滚轮鼠标,箭头键和PageUp / PageDown键。
现在,我不能告诉你我是多么高兴,当我得到这个工作有些我希望加入到这个源代码,这将是很容易增加,将增加凉爽的过渡图像上/下箭头,拇指控制,和列标题控制。
如何使用在自己的项目的源代码
若要使用此源代码,你自己CListCtrl秒,你所要做的就是复制文件(CSkinListCtrl.h,CSkinListCtrl.cpp,CSkinHeaderCtrl.h,CSkinHeaderCtrl.cpp,CSkinHorizontalScrollbar.h,CSkinHorizontalScrollbar.cpp,CSkinVerticleScrollbar.h,和CSkinVerticleScrollbar.cpp项目),并添加到您的文件到你的项目(项目,添加到项目,文件...). Now go into each of the CPP files you just copied and change the #include SkinList.h to #include yourapp.h .现在,每个进入柬埔寨人民党的文件,您刚才复制,改变#include SkinList.h到#include yourapp.h 。
接下来,您必须有一些图形,你想用你的滚动条和headerctrl(文件夹中查找该水库在我的图形来见我如何削减它们,使它们正常工作)。导入到你的资源标签的BMP图形,给他们的所有有意义的名称。然后你将不得不通过在源代码CSkinVerticleScrollbar , CSkinHorizontalScrollbar和CSkinHeaderCtrl类及更改密码,使其与您的位图有硬编码用于定位这些类数位图正确。例如,我的左箭头是26像素宽,所以我的拇指控制的位置从左边25个像素。你会看到之间的数字和图形的大小无关,当你在源代码。这将需要一个玩弄位得到它与您的图形工作,特别是如果你的设计是一个很大的不同,但它应该是一个有很多比从头开始写所有这些代码更容易。
现在,一旦你完成了这一
文档评论(0)