高手解答:关于RICHEDIT的两个问题

破地方9

破地方9

2016-02-19 20:56

下面请跟着图老师小编一起来了解下高手解答:关于RICHEDIT的两个问题,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!
问题1:RichEditCtrl在用DDX进行数据交换的时候会发生数据丢失问题?为什么!  当我们在拖了一个控件到程序里后,通常的做发是Ctrl+W,用类向导给控件关联一个变量,然后依靠DDX/DDV进行数据交换,假如我们用同样的方法来给RICHEDIT关联一个CString类型的变量就会存在一个问题,就是假如我们的数据大于了64K,数据就会丢失。  通过查MSDN发现,WM_GETTEXT消息并没有设计在RICHEDIT的数据大于64K的时候怎样处理。而类向导生成的代码是用DDX_Text来交换控件和CString变量的数据。恰好,DDX_Text函数是调用GetWindowText函数,而这个函数又会发出WM_GETTEXT消息到控件来返回控件里的数据。WM_GETTEXT消息不能接受超过64K的数据,因此导致了RICHEDIT在数据交换的时候发生了丢失。  为了解决这个问题,我们要用到DDX_RichText函数。添加下面两个函数到工程以下是引用片段:
  DWord CALLBACK ES2MemCallBack(DWORD_PTR dwCookie,LPBYTE pbBuff, LONG cb, LONG *pcb)
  {
  LPTSTR& lpszStrFill = *(LPTSTR*)dwCookie;
  memcpy(lpszStrFill, pbBuff, *pcb = cb);
  lpszStrFill += cb;
  *lpszStrFill = TCHAR('
展开更多 50%)
分享

猜你喜欢

高手解答:关于RICHEDIT的两个问题

编程语言 网络编程
高手解答:关于RICHEDIT的两个问题

Php高手带路--问题汇总解答

PHP
Php高手带路--问题汇总解答

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

关于孕期乳房问题的解答

电脑网络
关于孕期乳房问题的解答

准备怀孕必知的两个问题

孕前准备
准备怀孕必知的两个问题

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

新生儿常见的两个问题

电脑网络
新生儿常见的两个问题

关于Banner广告设计的两个观点

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
关于Banner广告设计的两个观点

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

强化Linux系统安全的方法汇总

强化Linux系统安全的方法汇总

Win10如何批量卸载所有磁贴

Win10如何批量卸载所有磁贴
下拉加载更多内容 ↓