如何清除listview中的焦点矩形框?

aldz 2001-07-20 01:00:30
我在启动时向listview中先画了一个焦点矩形框,用的API是DrawFocusRect,
然后在listview_keydown事件中设置按下方向键便在下一个项目上画焦点矩形
框,但我发现上次画的焦点矩形框没有清除,我用了listview1.refresh方
法,但又导致了listview的不停刷新,我该用什么方法清除掉它?既要能够画
焦点矩形框在下一个项目上,又要listview不刷新而清除它!

说实在话,DrawFocusRect这个API在我感觉中并不像想像中那样容易画来画去...
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Leemaasn 2001-07-21
  • 打赏
  • 举报
回复
我关注。。。
aldz 2001-07-20
  • 打赏
  • 举报
回复
我试过了,的确可以清除掉原来的焦点矩形,但并没有根本的解决问题,因为还有
两个问题最难办:
1.因为我在listview1_keydown中设置用DOWN键去连续的画,所以当第一次按DOWN键时
第一条语句要先檫除FORM_LOAD时画的第一个矩形框,然后再画第二个矩形框在键盘光
标所在的listitem上,也就是listitem(2);当第二次按DOWN键时又檫除上一次的矩形,
又画矩形在listview(3)上,难就难在如何让它循环又檫除又画.
2.这里还有一个冲突-----当按DOWN键时Windows自己本来就会在listitem上画一个绿色
的矩形框,所以在画焦点矩形时要先清除掉原来listitem上的绿色矩形框
bobar 2001-07-20
  • 打赏
  • 举报
回复
载原来的地方重化一次, 用 “or“
Seedling 2001-07-20
  • 打赏
  • 举报
回复
用同样的参数再次调用这个函数能不刷新而清除它!

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧