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

  • 相关阅读:
    机器学习---14
    机器学习---13
    机器学习--10
    机器学习--9
    机器学习--8
    机器学习--7
    机械学习--6
    大数据应用技术课程实践--选题与实践方案
    15.手写数字识别-小数据集
    14.深度学习-卷积
  • 原文地址:https://www.cnblogs.com/findumars/p/5293984.html
Copyright © 2011-2022 走看看