ソフト改行文字の挿入 <TOP>
SendMessage ウィンドウにメッセージを送信
EM_FMTLINES(&HC8) フト改行文字の設定をオンまたはオフ
#define EM_FMTLINES &HC8 は複数行入力ありに設定したエディットボックスにおいて、ソフト改行文字を設定または削除します。
wParam = 1 ソフト改行文字を挿入/wParam = 0 ソフト改行文字を挿入しない。lParam
は常に0
例では、F-Basic Version 6.3 Programming Tips の文字列が入れきらない幅のEdit1、および全表示可能な幅のEdit2、Picture1を用意します。
EditBoxは複数行入力あり、垂直スクロールありに設定しています。(Picture1はリソース操作で3D表示にしています)
起動時(通常)Edit1には文字列が入りきらないので2行表示されます。
ソフト改行文字を挿入するをチェックし「実行」をクリックするとEdit1の改行位置を取得しソフト改行文字を挿入してEdit2、Picture1に表示します。
'================================================================ '= ソフト改行文字の挿入 '= (EM_FMTLINES.bas) '================================================================ #include "Windows.bi" ' ウィンドウにメッセージを送信。この関数は、指定したウィンドウのウィンドウプロシージャが処理を終了するまで制御を返さない Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any) #define EM_FMTLINES &HC8 'ソフト改行文字の設定をオンまたはオフにする Var Shared Edit(1) As Object Var Shared Text(2) As Object Var Shared Radio(1) As Object Var Shared Picture1 As Object Var Shared Button1 As Object Var Shared Group1 As Object For i = 0 To 2 If i < 2 Then Edit(i).Attach GetDlgItem("Edit" & Trim$(Str$(i + 1))) : Edit(i).SetFontSize 14 Radio(i).Attach GetDlgItem("Radio" & Trim$(Str$(i + 1))) : Radio(i).SetFontSize 14 End If Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) : Text(i).SetFontSize 14 Next Picture1.Attach GetDlgItem("Picture1") Button1.Attach GetDlgItem("button1") : Button1.SetFontSize 14 Group1.Attach GetDlgItem("Group1") : Group1.SetFontSize 14 Var Shared txt As String '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() ShowWindow -1 txt = "F-Basic Version 6.3 Programming Tips" Edit(0).SetWindowText txt Edit(1).SetWindowText txt Picture1.Cls Picture1.Print txt End Sub '================================================================ '= '================================================================ Declare Function Index bdecl () As Integer Function Index() Index = Val(Mid$(GetDlgRadioSelect("Radio1"), 6)) - 1 End Function '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var Ret As Long Ret = Api_SendMessage(Edit(0).GethWnd, EM_FMTLINES, CLng(Index), ByVal CLng(0)) txt = Edit(0).GetWindowText Picture1.Cls Picture1.Print txt Edit(1).SetWindowText txt End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End