关于CWnd::CreateSolidCaret()函数

lifeng40401 2008-04-01 01:45:27
MSDN上有一段关于上述函数的解释:The system’s window-border width or height can be retrieved by theGetSystemMetrics Windows function with the SM_CXBORDER and SM_CYBORDER indexes. Using the window-border width or height ensures that the caret will be visible on a high-resolution display.


这其中提到一个函数GetSystemMetrics,使用这个函数为何不能显示出文本插入符,下述是我的代码段:
this->CreateSolidCaret(GetSystemMetrics(SM_CXBORDER), GetSystemMetrics(SM_CYBORDER ));
this->ShowCaret();
GetSystemMetrics在CreateSolidCaret中使用又有什么功能?谢谢!

...全文
243 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
swingboard 2011-03-23
  • 打赏
  • 举报
回复
应该与字符的宽度有关,一个字符的宽度是8bit,因此获取了*8是为了分配一个字符应该占有的宽度。
菜牛 2008-04-02
  • 打赏
  • 举报
回复
系统参数就是这样,有什么转换的。
lifeng40401 2008-04-02
  • 打赏
  • 举报
回复
我测试了一下,GetSystemMetrics(SM_CXBORDER)返回1,
这里是不是存在什么坐标转换问题,请你能不能直接解释一
下,谢谢!
菜牛 2008-04-02
  • 打赏
  • 举报
回复
1楼的8*应该放在括号外面。
菜牛 2008-04-02
  • 打赏
  • 举报
回复
你先看看GetSystemMetrics(SM_CXBORDER)返回多少。
lifeng40401 2008-04-01
  • 打赏
  • 举报
回复
为什么二个参数都要乘以8,麻烦你能不能解释一下!
谢谢!
ostrich2fly 2008-04-01
  • 打赏
  • 举报
回复

this->CreateSolidCaret(GetSystemMetrics(8*SM_CXBORDER), GetSystemMetrics(8*SM_CYBORDER ));
this->ShowCaret();


你再试试
可以的。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧