词条 | 插入符号函式 |
释义 | 五个插入符号函式主要有五个插入符号函式: CreateCaret 建立与视窗有关的插入符号 SetCaretPos 在视窗中设定插入符号的位置 ShowCaret 显示插入符号 HideCaret 隐藏插入符号 DestroyCaret 撤消插入符号 另外还有取得插入符号目前位置(GetCaretPos)和取得以及设定插入符号闪烁时间(GetCaretBlinkTime和SetCaretBlinkTime)的函式。 定义在Windows中,插入符号定义为水平线、与字元大小相同的方框,或者与字元同高的竖线。如果使用调和字体,例如Windows内定的系统字体,则推荐使用竖线插入符号。因为调和字体中的字元没有固定大小,水平线或方框不能设定为字元的大小。 如果程式中需要插入符号,那么您不应该简单地在视窗讯息处理程式的WM_CREATE讯息处理期间建立它,然後在WM_DESTROY讯息处理期间撤消。其原因显而易见:一个讯息伫列只能支援一个插入符号。因此,如果您的程式有多个视窗,那么各个视窗必须有效地共用相同的插入符号。 其实,它并不像听起来那么多限制。您再想想就会发现,只有在视窗有输入焦点时,视窗内显示插入符号才有意义。事实上,闪烁的插入符号只是一种视觉提示:您可以在程式中输入文字。因为任何时候都只有一个视窗拥有输入焦点,所以多个视窗同时都有闪烁的插入符号是没有意义的。 通过处理WM_SETFOCUS和WM_KILLFOCUS讯息,程式就可以确定它是否有输入焦点。正如名称所暗示的,视窗讯息处理程式在有输入焦点的时候接收到WM_SETFOCUS讯息,失去输入焦点的时候接收到WM_KILLFOCUS讯息。这些讯息成对出现:视窗讯息处理程式在接收到WM_KILLFOCUS讯息之前将一直接收到WM_SETFOCUS讯息,并且在视窗打开期间,此视窗总是接收到相同数量的WM_SETFOCUS和WM_KILLFOCUS讯息。 使用插入符号的主要规则很简单:视窗讯息处理程式在WM_SETFOCUS讯息处理期间呼叫CreateCaret,在WM_KILLFOCUS讯息处理期间呼叫DestroyCaret。 其他规则这里还有几条其他规则:插入符号刚建立时是隐蔽的。如果想使插入符号可见,那么您在呼叫CreateCaret之後,视窗讯息处理程式还必须呼叫ShowCaret。另外,当视窗讯息处理程式处理一条非WM_PAINT讯息而且希望在视窗内绘制某些东西时,它必须呼叫HideCaret隐藏插入符号。在绘制完毕後,再呼叫ShowCaret显示插入符号。HideCaret的影响具有累积效果,如果多次呼叫HideCaret而不呼叫ShowCaret,那么只有呼叫ShowCaret相同次数时,才能看到插入符号。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。