HTML   发布时间:2022-04-15  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使DHTMLEd控件的代码用直线引号替换直线引号大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个旧的,遗留的VB6应用程序,它使用D HTML编辑控件作为 HTML编辑器. Microsoft DHTML编辑控件,一个DHTMLEd,可能只不过是一个使用IE自己的内部编辑功能的IE控件.

我想修改应用程序来实现Word的智能引号.具体来说,“被替换为”或“,”被替换为“或”,因为它被输入;如果用户在更换后立即按Ctrl Z,则可以回到直接引用.@H_197_3@

有人有代码吗?@H_197_3@

如果您没有DHTML / VB6的代码,但确实JavaScript代码可以在具有contentEditable区域的浏览器中使用,我也可以使用它@H_197_3@

解决方法

这是VB6版本:
Private Sub DHTMLEdit1_onkeypress()
    Dim e As Object
    Set e = DHTMLEdit1.DOm.parentWindow.event
    'Perform smart-quote replacement'
    SELEct Case e.keyCode
    Case 34: 'Double-Quote'
        e.keyCode = 0
        If IsAtWordEnd Then
            InsertDoubleUndo ChrW$(8221),ChrW$(34)
        Else
            InsertDoubleUndo ChrW$(8220),ChrW$(34)
        End If
    Case 39: 'Single-Quote'
        e.keyCode = 0
        If IsAtWordEnd Then
            InsertDoubleUndo ChrW$(8217),ChrW$(39)
        Else
            InsertDoubleUndo ChrW$(8216),ChrW$(39)
        End If
    End SELEct
End Sub

Private Function IsLetter(ByVal character As String) As Boolean
    IsLetter = UCase$(character) <> LCase$(character)
End Function

Private Sub InsertDoubleUndo(VisibleText As String,Hiddentext As String)
    Dim SELEction As Object
    Set SELEction = DHTMLEdit1.DOm.SELEction.createRange()
    SELEction.Text = Hiddentext
    SELEction.moveStart "character",-Len(Hiddentext)
    SELEction.Text = VisibleText
End Sub

Private Function IsAtWordEnd() As Boolean

    Dim ch As String
    ch = PreviousChar
    IsAtWordEnd = (ch <> " ") And (ch <> "")

End Function

Private Function PreviousChar() As String

    Dim SELEction As Object
    Set SELEction = m_dom.SELEction.createRange()
    SELEction.moveStart "character",-1
    PreviousChar = SELEction.Text

End Function

注意:此解决方案在撤销链中插入一个附加级别.例如,键入“这是一个测试”给出了一个“这是一个测试” – > “这是一个测试” – >“这是一个测试 – >” – >“(额外的粗体).要删除这个额外的级别,你必须实现某种Postmessage子类化解决方案,它不涉及取消本机按键@H_197_3@

编辑:如果您定位到Windows Vista,请不要忘记包含DHTML Editing Control redistributable.@H_197_3@

大佬总结

以上是大佬教程为你收集整理的使DHTMLEd控件的代码用直线引号替换直线引号全部内容,希望文章能够帮你解决使DHTMLEd控件的代码用直线引号替换直线引号所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。