小生不才,参照M$提供的WordPad源代码例子,自制了一个简单字处理程序,基本功能已实现,只是有一点小问题:
在WordPad或Word中,当我们用鼠标点击或选择某一行字时,还有就是用键盘键移动到某一行字时,系统会自动获取当前光标下字体的格式,如字体名称、字体大小等,并更新至工具栏中的相应的字体格式Combo Box框中,请问如何实现? 应处理什么消息?
谢谢!
在WordPad或Word中,当我们用鼠标点击或选择某一行字时,还有就是用键盘键移动到某一行字时,系统会自动获取当前光标下字体的格式,如字体名称、字体大小等,并更新至工具栏中的相应的字体格式Combo Box框中,请问如何实现? 应处理什么消息?
谢谢!
int nTwipSize;
float fFontSize;
CHARFORMAT &cf = GetCharFormatSelection();
sFontName = cf.szFaceName;
nTwipSize = cf.yHeight; nTwipSize = (nTwipSize + 5) / 10;
fFontSize = nTwipSize / 2.F;//.F; CString sResult;
sResult.Format("%s\n%f", sFontName, fFontSize);
AfxMessageBox(sResult);
以上代码的确能够获取当前字体信息,但现在最主要的问题是要处理什么消息才能实时地在工具栏的 Combo Box 中反映出来?你可以在 WordPad 或 Word 中操作一下便可知道我的意思了!
我的意思是:
在WordPad或Word中,当我们用鼠标点击或选择某一行字时,还有就是用键盘键移动到某一行字时, 这些鼠标与键盘操作用什么消息处理啊(或者说移动上一行、下一行字会触发什么消息)?
不好意思!这段时间忙别的事情去了,现在再回头看WordPad的源码,用 bcpl(林平之) 的方法:ON_UPDATE_COMMAND_UI机制来解决问题了。当然 fengqinggao(风清高) 的方法也很好,只是我比较懒一点。;-)
谢谢两位,谢谢其他帮忙解决问题的大侠!