使用ChtmlEditView实现的类似于qq的对话框,现在想实现enter和ctrl+enter交互作为发送快捷键的功能。但是不知道怎样能用ctrl+enter换行。
我的思路:
一:截获用户的Ctrl+enter消息后,在html中加入<br>或<div></div>可以实现换行,但换行后设置的字体加不进去,换行后的字体总是chtmlEditView默认的字体。
二:用户按下ctrl+enter后模拟shift +enter或enter建按下。(shift+enter和enter可顺利换行)但是模拟的键盘消息总是有时候成功有时候不成功。
这两种方法都没有很好的解决ctrl+enter的问题,希望有经验的人可以指教一下,怎样能实现用ctrl+entre换行。
先谢谢大家了。

解决方案 »

  1.   

    在html中加入 <br>同时把当前字体也加进去。
      

  2.   

    不行!试过在<div></div>之间加入字体,但是后来在对话框中输入的内容还是系统默认的字体。不知道chtmlEdit是怎样在用户输入时加入字体颜色等信息的。只要我已加入html标记,后面再输入的东西就不会自动加在<div></div>标记内了,还有其他注意吗?
      

  3.   

    不好,字体设置方面本身就有bug。还是最好能从根本上用ctrl+enter换行。
      

  4.   

    最后这样解决。
    else if (GetAsyncKeyState(VK_RETURN)<0 &&GetAsyncKeyState(VK_CONTROL)<0)
    {
    pi_Editor->GetDocument()->PasteIntoSelection(_T("<DIV></DIV>"));
            pi_Editor->GetDocument()->FocusWindow();
    pi_Editor->ScrollToEnd();}
    结贴
      

  5.   

    直接 pi_Editor->Paragraph() 应该就可以
      

  6.   

    这样解决不好,又有了新的bug。
    还请老大们再多多指教,
      

  7.   

    回复,skyxie ,pi_Editor->Paragraph() 可以,但是用它换行,光标会先当前行的下两行,再下一行,来回的换。而且它和pi_Editor->GetDocument()->PasteIntoSelection(_T(" <DIV> </DIV>")); 一样有个缺点.就是在不能连续换行,比如当前行有文字,我可以换到下一行,再换的换不会再下一行。就是中间没有空行。