wxWidgets是提供光标类的,大体上,你只要设置好闪烁时间(blinkTime)、光标宽度,高度,一个受wxWidgets控制的光标就能帮助你在窗口中闪烁,提示文字的输入了。
wxCaret *caret = new wxCaret(this, m_widthChar, m_heightChar);
SetCaret(caret);
caret->Move(m_xMargin, m_yMargin);
caret->Show();
上面的代码中, SetCaret()是窗口的方法。
caret->SetSize(m_widthChar, m_heightChar);
SetSize用来设置光标的宽度和高度。
caret->Move(x, y);
用wxWidgets的光标类的好处是,
1、你不需要自己开计时器(timer),也就不用写一堆跟timer相关的代码。
2、你不需要在OnPaint()中用自己的代码绘制光标,擦去光标。
唯一需要你做的事情就是设置好光标的宽高,然后把光标放到合适的位置,剩下的就让wxWidgets来帮你完成吧。
注:
这个坐标并不能支持到rotated text的光标放置。