マージンの設定と解除 <TOP>
エディットボックス内の文字列をマージンを設定して表示します。
SendMessage ウィンドウにメッセージを送信
例では、レフトマージンおよびライトマージンを入力し、表示状態を確認しています。
'================================================================ '= マージンの設定と解除 '= (EM_SETMARGINS.bas) '================================================================ #include "Windows.bi" ' ウィンドウにメッセージを送信。この関数は、指定したウィンドウのウィンドウプロシージャが処理を終了するまで制御を返さない Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&) #define EM_SETMARGINS &HD3 '左右マージンの設定 #define EC_LEFTMARGIN 1 '左マージンの設定 #define EC_RIGHTMARGIN 2 '右マージンの設定 Var Shared Edit(2) As Object Var Shared Text(1) As Object Var Shared Button(1) As Object For i = 0 To 2 If i < 2 Then Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) : Text(i).SetFontSize 14 Button(i).Attach GetDlgItem("Button" & Trim$(Str$(i + 1))) : Button(i).SetFontSize 14 End If Edit(i).Attach GetDlgItem("Edit" & Trim$(Str$(i + 1))) : Edit(i).SetFontSize 14 Next Var Shared txt As String '================================================================ '= '================================================================ Declare Sub MainForm_Start edecl () Sub MainForm_Start() txt = "F-BASICはWindows(R)環境で「DOS BASIC資産」を活用できます。操作性、拡張性、そして高速処理 すべてに優れ、充実した移行支援機能も搭載しています。" Edit(0).SetWindowText txt End Sub '================================================================ '= マージン設定 '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var LeftMargin As Integer Var RightMargin As Integer Var Margin As Long Var Ret As Long LeftMargin = Val(Edit(1).GetWindowText) RightMargin = Val(Edit(2).GetWindowText) Margin = RightMargin * 16 ^ 4 + LeftMargin 'Margin = (RightMargin * &H10000) Or LeftMargin Ret = Api_SendMessage(Edit(0).GethWnd, EM_SETMARGINS, EC_LEFTMARGIN Or EC_RIGHTMARGIN, Margin) Edit(0).SetWindowText txt End Sub '================================================================ '= マージン解除 '================================================================ Declare Sub Button2_on edecl () Sub Button2_on() Var Ret As Long Ret = Api_SendMessage(Edit(0).GethWnd, EM_SETMARGINS, EC_LEFTMARGIN Or EC_RIGHTMARGIN, 0) Edit(0).SetWindowText txt End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End