`
isiqi
  • 浏览: 15996744 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

改变Edit的光标

阅读更多

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

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

type
TwdEdit=class(TEdit)
protected
procedureEditSetFocus(varmessage:TMessage);messageWM_SETFOCUS;
end;

procedureTwdEdit.EditSetFocus(varmessage:TMessage);
var
H:HBITMAP;
begin
inherited;
ifDestroyCaretthen
begin
H:=LoadBitmap(
0,MAKEINTRESOURCE(OBM_RGARROW));
ifH=
0thenExit;
CreateCaret(Handle,H,
8,10);
ShowCaret(Handle);
end;
end;

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

分享到:
评论

相关推荐

    自己写的一个listCtrl 可编辑单元格

    自己学习的时候写的,呵呵,可以编辑单元格。改变颜色等等

    vc6屏蔽控件的输入和指向结构指针的指针示例

    edit或者combobox控件输入时有时需要限制特定的输入,示例给出了两种方式,一种是键消息控制,一种是变量改变后控制。光标控制。

    Delphi开发技巧之-VCL

    TMemo内光标位置根据鼠标移动 TMemo自动卷动 TRichEdit卷到特定位置 TRxRichEdit内插入图像 TStringGrid中插入、删除一行 TStringGrid保存和装载 TTreeview控件显示粗体节点 TWebBrowser中调用“查找”对话框 为...

    window32 API大全 win32编程

    Win32应用程序可以使用插入标记函数来创建一个插入标记,改变它的闪动频率,显示、隐藏插入标记,或重新设置插入标记的位置。 组合框函数(Combo Box) 组合框是由COMBOBOX类定义的一种控制,综合了列表框和编辑...

    VC++常用功能实例

    问:如何改变默认的光标形状? 82 问:如何用键盘滚动分割的视口? 83 问:如何在线程中处理状态条? 83 问:如何阻止WINDOWS关闭? 83 问:如何使一个按钮Disable? 83 问:怎样从MFC扩展动态链结库(DLL)中显示一个对话框...

    VC++常用的共用函数100多页

    问:如何改变默认的光标形状? 82 问:如何用键盘滚动分割的视口? 83 问:如何在线程中处理状态条? 83 问:如何阻止WINDOWS关闭? 83 问:如何使一个按钮Disable? 83 问:怎样从MFC扩展动态链结库(DLL)中显示一个对话框...

    Label的源码 支持各种字体 以及各种排列方式 以及变幻字体颜色和字体透明度 文字的栅格化等

    WinUI的Edit控件文字显示主要依靠CWUIEdit类来实现 她支持以下特性: 1 此文字层支持透明度设置 2 支持文字的颜色任意设置 3 支持Freetype书写 4 支持键盘输入 5 光标的移动 此示例源码主要为了解决字符串超出...

    VC++ 编程技巧

    62、如何使用一个预定义的Windows光标 22 63、如何确定当前屏幕分辨率 22 64、如何检索原先的Task Manager应用程序使用的任务列表 22 65、如何确定Windows和Windows系统目录 23 66、在哪儿创建临文件 23 67、如何...

    VC++ 专家指导.doc

    (38)如何改变默认的光标形状? 120 (39)如何用键盘滚动分割的视口? 121 (40)如何在线程中处理状态条? 123 (41)如何阻止WINDOWS关闭? 124 (42)如何使一个按钮Disable? 124 (43)怎样从MFC扩展动态链结库(DLL)中显示一个...

    VC++2010权威开发指南+源代码

     6.6.4 改变鼠标光标 325  6.7 Visual C++ 2010 HtmlEditView开发 328  6.8 Visual C++ 2010 HtmlView开发 331  6.9 Visual C++ 2010 ListView开发 335  6.10 Visual C++ 2010 RichEditView开发 335  6.11 ...

    VISUAL C++实效编程280例

    6.43 实例140:显示RichEdit控件 第7章 GDI 7.1 实例141:通过HDC获取CDC指针 7.2 实例142:创建屏幕DC 7.3 实例143:选择预定义的GDI对象 7.4 实例144:获取文本的长度和高度 7.5 实例145:在长文本末端显示省略号...

    VC++2010权威开发指南+源代码.part2

     6.6.4 改变鼠标光标 325  6.7 Visual C++ 2010 HtmlEditView开发 328  6.8 Visual C++ 2010 HtmlView开发 331  6.9 Visual C++ 2010 ListView开发 335  6.10 Visual C++ 2010 RichEditView开发 335  6.11 ...

    Window 消息大全

    例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来...

    Visual C++编程技巧精选集 光盘

    60.如何在RichEdit中实现查找和定位字符 61.如何在RichEdit中混合显示图片和文本 62.如何使List列表控件支持整行选择 63.如何使用List列表控件填充表格数据 64.如何使用数据库记录填充List列表控件 65.如何创建...

    vim插件nerdtree.vim.zip

    Nerd tree可以让你浏览文件系统并打开文件或目录。你可以通过键盘或鼠标控制它以树状图显示...*默认情况下,该脚本覆盖vim的默认文件浏览器(netrw),所以如果直接输入:edit命令也会用nerd树打开 标签:nerdtree

    protel2004封装

    spacebar——绘制导线,直线或总线时,改变走线模式 v+d——缩放视图,以显示整张电路图 v+f——缩放视图,以显示所有电路部件 home——以光标位置为中心,刷新屏幕 esc——终止当前正在进行的操作,返回待命状态 ...

    Visual C++2010开发权威指南(共三部分).part1.rar

    6.6.4 改变鼠标光标 325 6.7 Visual C++ 2010 HtmlEditView开发 328 6.8 Visual C++ 2010 HtmlView开发 331 6.9 Visual C++ 2010 ListView开发 335 6.10 Visual C++ 2010 RichEditView开发 335 6.11 VisualC++ 2010 ...

    C#DataGridView中的常用技巧

    15、自定义设定光标进入单元格是否编辑模式(编辑模式) Specify the Edit Mode for the Windows Forms DataGridView Control this.dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter; 16、新行指定...

Global site tag (gtag.js) - Google Analytics