掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
IEの特殊文字をricheditに貼り付けるには (ID:12578)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
中島さん クリップボードから直接ペースト出来ました。 はっはっはぁ(・o・) ワラってごまかす人 (‥;) (;´_`;)ということで文字取り出しも要領は同じです。 Exがついているものを使うといいみたいです。 でも古いricheditには通用しないようなので、下記のページに その対応ものっているようです。 function StrCopyW(Dest: PWChar; const Source: PWChar): PWChar; var i : integer; begin i := -1; Repeat Inc(i); Dest[i] := Source[i]; until (Word(Source[i])=0); Result := Dest; end; type TSETTEXTEX = packed record flags : DWORD; codepage : UINT; end; const EM_SETTEXTEX = WM_USER + 97; ST_DEFAULT = 0; ST_KEEPUNDO = 1; ST_SELECTION = 2; procedure TForm1.Button2Click(Sender: TObject); var PW : PWChar; SETTEXTEX : TSETTEXTEX; begin // テキスト挿入 getmem(PW,20); SETTEXTEX.flags := ST_SELECTION; SETTEXTEX.codepage := 1200; StrCopyW(PW,WideString('あ')+WChar($00E4)+WideString('あ')); Windows.SendMessageW(RichEdit1.Handle,EM_SETTEXTEX ,integer(@SETTEXTEX),integer(PW)); FreeMem(PW); end; procedure TForm1.BitBtn1Click(Sender: TObject); var WS : WideString; SETTEXTEX : TSETTEXTEX; begin // クリップボードから挿入。 WS := GetWideStrFromClipboard; SETTEXTEX.flags := ST_SELECTION; SETTEXTEX.codepage := 1200; Windows.SendMessageW(RichEdit1.Handle,EM_SETTEXTEX ,integer(@SETTEXTEX),integer(WS)); end; // 参考 // テキストも取り出せると思います。 // あとは自分でがんばってください。 //http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/richedit/richeditcontrols.asp //http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/richedit/richeditcontrols/richeditcontrolreference/richeditmessages/em_settextex.asp //http://www.honet.ne.jp/~tri/program/unicows02.html // EM_GETTEXTLENGTHEX // EM_GETTEXTEX // などは自分で検索エンジンで 値探してください。 // VidualStudioおもちでしたらRichedit.hから持ってくるといいです。 // 持っていないので私にはわかりません。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.