zoukankan      html  css  js  c++  java
  • 改变Edit的光标(使用CreateCaret,ShowCaret和LoadBitmap三个API函数)

        看着Edit的光标,是不是觉得了无生趣,想不想换个形状来玩玩,其实很简单,且听我道来。

        Edit是Windows的标准控件,它是一个系统范围窗口类,所以任何应用程序都能创建它。其实Edit本质上也是一个窗口,MS实现了它却不开放源代码,只暴露出一些接口给我们操作。Edit的光标(Caret)没有意外,就是通过CreateCaret,ShowCaret等API显示出来的。Edit似乎是在得到焦点时创建并显示Caret,在失去焦点时消毁Caret,此处我们只需在SetFocus消息中创建Caret即可,看如下代码:

    type
      TwdEdit = class(TEdit)
      protected
        procedure EditSetFocus(var message: TMessage); message WM_SETFOCUS;
      end;

    procedure TwdEdit.EditSetFocus(var message: TMessage);
    var
      H: HBITMAP;
    begin
      inherited;
      if DestroyCaret then
      begin
        H := LoadBitmap(0, MAKEINTRESOURCE(OBM_RGARROW));
        if H = 0 then Exit;
        CreateCaret(Handle, H, 810);
        ShowCaret(Handle);
      end;
    end;

        在你的窗口中创建这个控件,看看效果如何,你只需修改LoadBitmap的参数即可得到你想要的光标,试试吧。

    http://blog.csdn.net/linzhengqun/article/details/861722

  • 相关阅读:
    安装mysql apache php smb
    解决IE8placeholder属性问题
    将博客搬至CSDN
    shell脚本获取配置文件中的内容
    shell sed指令全解
    salt一键部署hive
    salt一键部署habse
    salt一键部署kafka
    salt一键部署elasticsearch
    salt一键部署mysql
  • 原文地址:https://www.cnblogs.com/findumars/p/5293984.html
Copyright © 2011-2022 走看看