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

2016-02-19 20:56 6 1 收藏

下面请跟着图老师小编一起来了解下高手解答:关于RICHEDIT的两个问题,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!

【 tulaoshi.com - 编程语言 】

问题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('

来源:http://www.tulaoshi.com/n/20160219/1624859.html

延伸阅读
  笔者兼职担任学校网络机房的管理员,在日常维护工作中经常遇到两个问题。其一,计算机经过网络克隆恢复系统后,有的机器明明只安装了一块网卡,却在Windows 98的“网络属性”中显示出两块网卡;其二,为了确保学生机的正常运行,防止意外的软件损坏,我们为每台学生机都安装了还原卡,不过这也带来了一个新的问题——杀毒软件无法...
标签: 营养价值
我们中国是个地大物博的国家,同时也是一个人口大国。通常会因为地域和民族的差异,而导致风俗习惯的不同。风俗习惯的不同经常表现在穿着和饮食方面,比如我们汉族人穿着的特点和其他族都是不一样的;同时我们吃的东西也和其他族的人吃的食物有着很大的差异。 我们的饮食差异最好的表现就是在于春节了,有的地方会吃饺子,而有的地方...
标签: 网络游戏
《大冲锋》狙击手对决视频 两个高手对狙 此视频只能用眼花缭乱来形容了,看来民间的高手十分多啊。 大冲锋 中的狙击手有别于其他 游戏 ,很多人反映狙击手不好用,不过卡了这部视频,我相信大家会重燃心中的怒火,来大冲锋对狙吧。 感谢您关注 中关村在线 游戏网: 中关村在线游戏网原创征集: h...
两个世界2 运行序列号 进入游戏后提示输入序列号,可用下面一组: JR2W-FY5U-R34N-YZU4 更多相关内容请关注:两个世界2专区 两个世界2 2小时游玩评价 玩了2个小时~谈谈自己的...
标签: 故事
故事两个朋友 在南非的莫诺莫塔帕王国,有两个真心的朋友,他们有福同享,有难同当。据说这里的人交朋友,比其他地方的人真心实意得多。一天夜里,人们早已进入了梦乡,一个朋友突然从睡梦中惊醒,一骨碌从床上爬起来就径直朝另一个朋友家跑来,把他家仆人叫醒,因为他感觉梦神已迈进了朋友家的大门。被吵醒的朋友非常惊慌,他穿起衣服,系好...

经验教程

72

收藏

25
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部