搜索
查看: 1253|回复: 0

请教如何实现ricnedit控件文本垂直居中

[复制链接]

12

主题

38

帖子

236

积分

新手入门

积分
236
发表于 2018-2-26 21:34:32 | 显示全部楼层 |阅读模式
    我想实现以下功能:当richeidt中只有一行文本时,该行文本能自动垂直居中,两行或以上时,则文本内容不居中。我用了个取巧的方式实现,想请教下是否有更合适的方式实现?
    文本框的内容有可能被别的线程变更(不一定是通过键盘修改),因此响应“_EN_CHANGE编辑框中的文本己更新”通知应该更合适,但是winform.richedit.onnotify这个函数并没有响应,这里应该如何修改?谢谢
  1. import win.ui;
  2. /*DSG{{*/
  3. var winform = win.form(text="aardio Form";right=299;bottom=147;parent=...)
  4. winform.add(
  5. richedit={cls="richedit";text="123456789";left=84;top=52;right=220;bottom=88;edge=1;multiline=1;vscroll=1;wrap=1;z=1}
  6. )
  7. /*}}*/

  8. var chgflag = true;
  9. winform.richedit.inflateClientRect(0, -9);
  10. winform.richedit.wndproc = function(hwnd,message,wParam,lParam){
  11.         if (0x100/*_WM_KEYDOWN*/ == message) {
  12.                 if ((winform.richedit.lineCount > 1) && (true == chgflag)) {
  13.                         winform.richedit.inflateClientRect(0, 9);
  14.                         chgflag = false;
  15.                 } elseif ((winform.richedit.lineCount == 1) && (false == chgflag)) {
  16.                         winform.richedit.inflateClientRect(0, -9);
  17.                         chgflag = true;
  18.                 }
  19.         }
  20. }

  21. winform.richedit.onnotify = function(id,code,ptr){
  22.         winform.msgbox("AAA");
  23. }

  24. winform.show()
  25. win.loopMessage();
  26. return winform;
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-12-17 17:45 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表