首页 > 数据库技术 > 详细

改变Edit的光标(使用CreateCaret,ShowCaret和LoadBitmap三个API函数)

时间:2016-03-18 23:31:41      阅读:645      评论:0      收藏:0      [点我收藏+]

    看着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

改变Edit的光标(使用CreateCaret,ShowCaret和LoadBitmap三个API函数)

原文:http://www.cnblogs.com/findumars/p/5293984.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!