如何象Excel一样得到一个蓝色的选择区域?(50分)

  • 主题发起人 主题发起人 devil_li
  • 开始时间 开始时间
D

devil_li

Unregistered / Unconfirmed
GUEST, unregistred user!
如何象Excel一样得到一个蓝色的选择区域?(可不是反色哦)并且取消选择以后颜色还要能够恢复。

 
选择之后,先保存选择区域的位图,然后以蓝色覆盖,最后恢复保存的位图就是了。
 
然后以蓝色覆盖?现在每个Cell的Paint方法都是我自己写的,
并且由于Cell有图片、选择等多种状态,Selection还有可能很大,保存图片是不可能的。
以前是用InvertRgn实现的,就几句话搞定。后来觉得不好看,想换成Excel效果的。
不知怎么实现?
 
原来是这个意思,我还以为你是在位图上选择呢;
你的意思就是高亮显示选择的CELL,需要侦测出来并且发送 EM_SETBKGNDCOLOR 消息。
搜索一下吧,很多了。
 
EM_SETBKGNDCOLOR?消息由谁来处理呢?Paint函数可是我自己写的呀,
并且Cell is inherited from TPersistent!(这是我写的控件)
 
你这不是舍近求远,到这里来了。

将TPEN.Mode设为pmNotXor(或用SetROP2),
恢复时重画就行了。

唉¥%……*—*#。
 
[:)][:D][8D][:(][:(!][^]
 
后退
顶部