昵称下面那好几个几何图形变成只有一个几何图形了。

zjs100901 2012-12-21 08:50:11
本来是有五个绿色的,很醒目啊。现在变成只有一个橙色的了,看上去很不起眼啊。

知道这里人气比较旺,问个关于 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 广告,与楼主发贴内容无关,如有瓜葛,纯属巧合 ====================
...全文
474 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimette 2013-01-07
  • 打赏
  • 举报
回复
引用 14 楼 zjs100901 的回复:
引用 13 楼 sha_jinhao 的回复:...... 你有的我会有的!
zjs100901 2013-01-06
  • 打赏
  • 举报
回复
引用 13 楼 sha_jinhao 的回复:
...... 你有的我会有的!
jimette 2013-01-04
  • 打赏
  • 举报
回复
引用 4 楼 zjs100901 的回复:
羡慕吗? 羡慕吗?
你有的我会有的!
zjs100901 2013-01-03
  • 打赏
  • 举报
回复
把帖子给结了。现在我的头像的地址是 http://avatar.csdn.net/2/E/E/1_zjs100901.jpg
zjs100901 2012-12-28
  • 打赏
  • 举报
回复
改用旧版本就不是很爽了。
BeanJoy 2012-12-27
  • 打赏
  • 举报
回复
引用 9 楼 zjs100901 的回复:
引用 7 楼 BeanJoy 的回复:……因为没有焦点,所以既使选中,也看不到。这就是我说的无效。 从VS2008的工具箱里拖出来的RichEdit默认为2.0版本,而从VC6里面拖出来的是1.0版本的。 应该是这两个版本对于回车换行的处理一不样,1.0版本把回车换行当作两个字符(0x0D0x0A,UNICODE下是0x0D0x000x0A0x00),2.0版本下,回……
你也可以在VS2008里面使用1.0版本的RichEdit啊,把RichEdit20W换成RichEdit,然后用AfxInitRichEdit初始化。
zjs100901 2012-12-27
  • 打赏
  • 举报
回复
引用 7 楼 BeanJoy 的回复:
……因为没有焦点,所以既使选中,也看不到。这就是我说的无效。
从VS2008的工具箱里拖出来的RichEdit默认为2.0版本,而从VC6里面拖出来的是1.0版本的。
应该是这两个版本对于回车换行的处理一不样,1.0版本把回车换行当作两个字符(0x0D0x0A,UNICODE下是0x0D0x000x0A0x00),2.0版本下,回车换行虽然也是0x0D0x0A,但是当作一个字符处理的。

可能忘了什么属性,直接上 rc 文件里的属性吧。VC6 的,
    EDITTEXT        IDC_EDIT1,7,27,63,76,ES_MULTILINE | ES_AUTOHSCROLL | 
ES_NOHIDESEL | ES_WANTRETURN | WS_VSCROLL | WS_HSCROLL
CONTROL "",IDC_RICHEDIT1,"RICHEDIT",ES_MULTILINE |
ES_AUTOHSCROLL | ES_NOHIDESEL | ES_WANTRETURN |
WS_BORDER | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP,80,27,63,76
VC2008 的,
    EDITTEXT        IDC_EDIT1,7,17,63,76,ES_MULTILINE | ES_AUTOHSCROLL
| ES_NOHIDESEL | ES_WANTRETURN
CONTROL "",IDC_RICHEDIT21,"RichEdit20W",ES_MULTILINE | ES_AUTOHSCROLL
| ES_NOHIDESEL | ES_WANTRETURN | WS_BORDER | WS_TABSTOP,80,17,63,76

你说这两个版本对于回车换行的处理一不样,我怎么觉得,好像,似乎,微软没做好。VC6 对也好,错也好,很一致。VC2008 反而不一致。
引用 8 楼 proorck6 的回复:
升级了?恭喜。
proorck6 2012-12-27
  • 打赏
  • 举报
回复
升级了?恭喜。
BeanJoy 2012-12-27
  • 打赏
  • 举报
回复
引用 6 楼 zjs100901 的回复:
引用 5 楼 BeanJoy 的回复:两个问题: 1.Edit和RichEdit是否Mulitline都为True? 2.SetSel前,是否都SetFocus了? 上两个问题与楼主问题无关,只是按照楼主说的来做,并无SetSel的效果。 Mulitline 都为 True,帖子时忘写了。 SetFocus 嘛,我多点几下按钮,这样焦点应该就在按钮身上吧。但是每……
因为没有焦点,所以既使选中,也看不到。这就是我说的无效。 从VS2008的工具箱里拖出来的RichEdit默认为2.0版本,而从VC6里面拖出来的是1.0版本的。 应该是这两个版本对于回车换行的处理一不样,1.0版本把回车换行当作两个字符(0x0D0x0A,UNICODE下是0x0D0x000x0A0x00),2.0版本下,回车换行虽然也是0x0D0x0A,但是当作一个字符处理的。
zjs100901 2012-12-27
  • 打赏
  • 举报
回复
引用 5 楼 BeanJoy 的回复:
两个问题: 1.Edit和RichEdit是否Mulitline都为True? 2.SetSel前,是否都SetFocus了? 上两个问题与楼主问题无关,只是按照楼主说的来做,并无SetSel的效果。
Mulitline 都为 True,帖子时忘写了。 SetFocus 嘛,我多点几下按钮,这样焦点应该就在按钮身上吧。但是每次运行效果都一样的。 你说的“并无 SetSel 的效果”指的是什么? 而且我发现,VC6 的 RichEdit,选中的文字的背景是黑色的,而 VC6 的 Edit 和 VC2008 里的两种控件的选中的文字的背景是蓝色的,不过这不是很重要。
BeanJoy 2012-12-27
  • 打赏
  • 举报
回复
两个问题: 1.Edit和RichEdit是否Mulitline都为True? 2.SetSel前,是否都SetFocus了? 上两个问题与楼主问题无关,只是按照楼主说的来做,并无SetSel的效果。
zjs100901 2012-12-27
  • 打赏
  • 举报
回复
zjs100901 2012-12-21
  • 打赏
  • 举报
回复
引用 1 楼 sha_jinhao 的回复:
帮顶一下把 这个不是非技术区么 问技术的问题?
总算有人来顶了,一定给你分。
赵4老师 2012-12-21
  • 打赏
  • 举报
回复
推荐使用WinHex软件查看文件或内存中的原始字节内容。
jimette 2012-12-21
  • 打赏
  • 举报
回复
帮顶一下把 这个不是非技术区么 问技术的问题?

15,440

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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