昵称下面那好几个几何图形变成只有一个几何图形了。
本来是有五个绿色的,很醒目啊。现在变成只有一个橙色的了,看上去很不起眼啊。
知道这里人气比较旺,问个关于 VC6 和 VC2008 的 Edit 和 RichEdit 的事情。
用 VC6 向导创建个基于对话框的工程,加个 Edit 关联个 CEdit m_Edit,加个 RichEdit 关联个 CRichEditCtrl m_RichEdit,加个按钮并双击它,在函数里写:
m_Edit.SetSel( 4, 8 );
m_RichEdit.SetSel( 4, 8 );
并在 OnInitDialog() 函数里添加:
m_Edit.SetWindowText( _T("12345\r\n67890\r\n12345\r\n") );
m_RichEdit.SetWindowText( _T("12345\r\n67890\r\n12345\r\n") );
别忘了在 C****App::InitInstance() 里加句:AfxInitRichEdit();
运行程序并点按钮,界面上的两个编辑框都选中了 5 和 6。
打开 VC2008,按上面的步骤建个一样的工程,但是 AfxInitRichEdit(); 要改成 AfxInitRichEdit2();
运行程序并点按钮,界面上的 Edit选中了 5 和 6,RichEdit 选中了 5 和 67。
为什么呢?
==================== 以下为 CSDN 广告,与楼主发贴内容无关,如有瓜葛,纯属巧合 ====================
[解决办法]
帮顶一下把
这个不是非技术区么
问技术的问题?
[解决办法]
两个问题:
1.Edit和RichEdit是否Mulitline都为True?
2.SetSel前,是否都SetFocus了?
上两个问题与楼主问题无关,只是按照楼主说的来做,并无SetSel的效果。
[解决办法]
因为没有焦点,所以既使选中,也看不到。这就是我说的无效。
从VS2008的工具箱里拖出来的RichEdit默认为2.0版本,而从VC6里面拖出来的是1.0版本的。
应该是这两个版本对于回车换行的处理一不样,1.0版本把回车换行当作两个字符(0x0D0x0A,UNICODE下是0x0D0x000x0A0x00),2.0版本下,回车换行虽然也是0x0D0x0A,但是当作一个字符处理的。
[解决办法]
升级了?恭喜。
[解决办法]
你也可以在VS2008里面使用1.0版本的RichEdit啊,把RichEdit20W换成RichEdit,然后用AfxInitRichEdit初始化。