質問
私には、レガシー VB6を利用したアプリケーショDHTML編集管理としてドキュメントを編集するには、編集者。Microsoft DHTML編集を制御するk.a.DHTMLEd、しょうも、ありとあらIE制御用の家独自のネイティブの編集機能内蔵しています。
思修正のアプリをスマートクォートのような言葉です。具体的には、 " に置き換え “ または ” や ' に置き換え ‘ または ’ として適切な入力;る場合はユーザCtrl+Z直後の交換に適していぐにお見積させていただきます。
いてコードする。
いないコードDHTML/VB6、なJavaScriptコードを作ることは、ブラウザcontentEditableの地域で使うことがでることも
解決
この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+subclassing
こんな消ネイティブの打鍵
編集:忘れずに DHTML編集制御で再頒布可能 を対象としている場合Windows Vista.
所属していません StackOverflow