SOUI官方论坛

 找回密码
 立即注册
查看: 138|回复: 1

SlistCtrl通过临时Edit实现单元格的编辑及只读

[复制链接]
  • TA的每日心情
    开心
    昨天 08:10
  • 签到天数: 319 天

    [LV.8]以坛为家I

    494

    主题

    1185

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    17438
    发表于 2021-3-27 18:21:42 | 显示全部楼层 |阅读模式
    录制_2021_03_27_18_01_14_421.gif

    游客,如果您要查看本帖隐藏内容请回复


    目的是模仿Excel,能从单元格中复制数据,代码只是模仿效果,临时Edit的释放目前有问题,请注意


    【论坛管理员】小白 2021-03-26 16:23:42
    一个控件,如何响应Ctrl+C实现复制功能呢?

    【论坛管理员】小白 2021-03-26 16:24:23
    比如说一个SStatic,如何Ctrl+C复制文字?

    【SOUI作者】启程软件 2021-03-26 16:24:35
    首先这个控件要有焦点。

    【SOUI作者】启程软件 2021-03-26 16:24:48
    有了焦点才能响应键盘事件。

    【论坛管理员】小白 2021-03-26 16:25:08
    需要特别写什么消息吗?

    【SOUI作者】启程软件 2021-03-26 16:25:32
    给text+msgtransparent=0

    【SOUI作者】启程软件 2021-03-26 16:25:43
    再处理wm_keydown

    【SOUI作者】启程软件 2021-03-26 16:25:52
    响应ctrl+c

    【论坛管理员】小白 2021-03-26 16:26:24
    好的,我先写个demo试试
    QQ图片20210327181938.jpg

    【论坛管理员】小白 2021-03-26 17:39:05
    [img]file:///D:\我的文档\Documents\QQ\651864346\Image\Group2\[G\%{\[G%{M1H7V4[UTO7~]EK04DK.jpg[/img]
    想复制列表中的文字,都得靠上面的方式来实现吗?还是说自己加右键菜单?

    【最强吃货】茂德公 2021-03-26 17:39:57
    你创建的时候 注册一个 keydown消息 不就可以了?

    【论坛管理员】小白 2021-03-26 17:44:22
    能复制后,体验也不是最优的,若能手动选择,比如“鲁大师”三个字,能自由选择“大师”并复制就好了

    【SOUI作者】启程软件 2021-03-26 17:44:45
    你用edit控件就好了。

    【最强吃货】茂德公 2021-03-26 17:45:23
    也不用edit, 你点  就在相应位置  创建一个 edit 并把属性copy来

    【最强吃货】茂德公 2021-03-26 17:45:42
    盖住 原来的就好

    【论坛管理员】小白 2021-03-26 17:45:50
    然后把edit设置成只读?

    【最强吃货】茂德公 2021-03-26 17:45:59
    看你需求

    【论坛管理员】小白 2021-03-26 17:46:09
    那好,这样感觉还好些

    【SOUI作者】启程软件 2021-03-26 17:47:08
    3.0的edit还有隐藏光标的功能。

    【最强吃货】茂德公 2021-03-26 17:47:55
    两种写法:
    1. 利用soui的容器树, 鼠标按下时, 遍历查询当前顶层是哪个控件
    2. 这个比较简单, 创建的时候就绑定一个 keydown事件, 点哪个就在哪个创建

    【最强吃货】茂德公 2021-03-26 17:48:56
    第一个用 GetWindow( 具体啥忘了, 我记得有个 Next属性 )

    【论坛管理员】小白 2021-03-26 17:49:08
    好的,我先用edit的方式来实现

    【论坛管理员】小白 2021-03-26 17:49:21
    getParent吧

    【最强吃货】茂德公 2021-03-26 17:49:43
    不是 parent , 是 NextWindow  First 之类的,  你问群主

    【最强吃货】茂德公 2021-03-26 17:50:01
    就是递归查询 当前控件所有的子控件

    【SOUI作者】启程软件 2021-03-26 17:50:19
    听我的,直接用edit就好了。

    【最强吃货】茂德公 2021-03-26 17:50:21
    然后GetClientWIndow().PtInRect( pt )

    【SOUI作者】启程软件 2021-03-26 17:50:30
    没那么套路。

    【最强吃货】茂德公 2021-03-26 17:50:33
    或者你直接听黄老板的

    【论坛管理员】小白 2021-03-26 17:51:32
    那就用edit吧

    【最强吃货】茂德公 2021-03-26 17:53:32
    edit 的问题是 处理两次 光标事件

    没激活移动到时, 激活按下时的状态切换, 鼠标移动走时




  • TA的每日心情
    开心
    昨天 08:10
  • 签到天数: 319 天

    [LV.8]以坛为家I

    494

    主题

    1185

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    17438
     楼主| 发表于 2021-3-27 18:23:44 | 显示全部楼层
    SRichEdit的光标是支持闪动的,等下看看如何实现闪动的
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|SOUI官方论坛 ( 粤ICP备18103663号-2 )

    GMT+8, 2021-4-24 01:51

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表