D devil_li Unregistered / Unconfirmed GUEST, unregistred user! 2002-03-21 #1 如何象Excel一样得到一个蓝色的选择区域?(可不是反色哦)并且取消选择以后颜色还要能够恢复。
卷 卷起千堆雪tyn Unregistered / Unconfirmed GUEST, unregistred user! 2002-03-21 #2 选择之后,先保存选择区域的位图,然后以蓝色覆盖,最后恢复保存的位图就是了。
D devil_li Unregistered / Unconfirmed GUEST, unregistred user! 2002-03-21 #3 然后以蓝色覆盖?现在每个Cell的Paint方法都是我自己写的, 并且由于Cell有图片、选择等多种状态,Selection还有可能很大,保存图片是不可能的。 以前是用InvertRgn实现的,就几句话搞定。后来觉得不好看,想换成Excel效果的。 不知怎么实现?
然后以蓝色覆盖?现在每个Cell的Paint方法都是我自己写的, 并且由于Cell有图片、选择等多种状态,Selection还有可能很大,保存图片是不可能的。 以前是用InvertRgn实现的,就几句话搞定。后来觉得不好看,想换成Excel效果的。 不知怎么实现?
卷 卷起千堆雪tyn Unregistered / Unconfirmed GUEST, unregistred user! 2002-03-21 #4 原来是这个意思,我还以为你是在位图上选择呢; 你的意思就是高亮显示选择的CELL,需要侦测出来并且发送 EM_SETBKGNDCOLOR 消息。 搜索一下吧,很多了。
D devil_li Unregistered / Unconfirmed GUEST, unregistred user! 2002-03-21 #5 EM_SETBKGNDCOLOR?消息由谁来处理呢?Paint函数可是我自己写的呀, 并且Cell is inherited from TPersistent!(这是我写的控件)
H Huzzz Unregistered / Unconfirmed GUEST, unregistred user! 2002-03-22 #6 你这不是舍近求远,到这里来了。 将TPEN.Mode设为pmNotXor(或用SetROP2), 恢复时重画就行了。 唉¥%……*—*#。