您好,请问数字怎么能紧凑啊(word怎么让数字紧凑)
608
2022-05-30
早期整理资料的上传,解决问题中有查找和参考相关资料,内容以自己测试和处理过程整理为主。
问题现象
VC的界面上如果通过静态文本框属性显示一个包含多个&&的字符串,或者通过DrawText接口显示包含多个&&的字符串。默认情况下,一个&不会显示,两个&会显示为一个&,带来界面显示问题。
问题原因
这是因为VC的界面类控件中对文字有一些前缀相关属性,默认会将&当作前缀符号解释处理,根据控件属性中对前缀的不同处理来显示前缀附件的字符。
解决方法
配置控件属性中关闭前缀识别属性。
代码样例
void OnPaint(){ CPaintDC dc(this); // device context for painting int x = 100; CRect rectText1(x + 50, 50, x + 200, 70); CRect rectText2(x + 50, 70, x + 200, 100); CString strTest1("1111111&&2222222"); std::wstring strTest2(L"666666&&2222222"); //dc.DrawText(strTest1, rectText1, DT_NOCLIP|DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_WORD_ELLIPSIS); //dc.DrawText(strTest2.c_str(), rectText2, DT_NOCLIP|DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_WORD_ELLIPSIS); dc.DrawText(strTest1, rectText1, DT_LEFT | DT_NOPREFIX); dc.DrawText(strTest2.c_str(), rectText2, DT_LEFT); dc.TextOutW(x + 50, 100, strTest1); dc.TextOutW(x + 50, 120, strTest2.c_str()); CDialog::OnPaint();}
静态文本框的属性调整:
DrawText处理效果:
相关资料及说明
该函数在指定的矩形里写入格式化的正文,根据指定的方法对正文格式化(扩展的制表符,字符对齐、折行等)。
通常DrawText解释助记前缀字符,&为给其后的字符加下划线,解释&&为显示单个&。指定DT_NOPREFIX,这种处理被关闭。
中文说明 http://blog.csdn.net/lishuhuakai/article/details/18322459
官方文档:https://msdn.microsoft.com/en-us/library/windows/desktop/dd162499(v=vs.85).aspx
Ignores the ampersand (&) prefix character in the text. The letter that follows will not be underlined, but other mnemonic-prefix characters are still processed. Example: input string: "A&bc&&d" normal: "Abc&d" DT_HIDEPREFIX: "Abc&d" DT_NOPREFIX: "A&bc&&d" PREFIXONLY: " _ " Compare with DT_NOPREFIX and DT_PREFIXONLY.
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。