エディットボックスの読取専用設定・解除          <TOP>


SendMessage ウィンドウにメッセージを送信

EM_SETREADONLY(&HCF) エディットコントロールの読み取り専用スタイルを設定

 

起動時、通常入力(読取なし)に設定されています。「読取専用」、「通常入力」をクリックし入力状態をチェックします。

参照

エディットボックスの属性を変更

 

'================================================================
'= エディットボックスの読取専用設定・解除
'=    (EditBoxReadOnly.bas)
'================================================================
#include "Windows.bi"

' ウィンドウにメッセージを送信。この関数は、指定したウィンドウのウィンドウプロシージャが処理を終了するまで制御を返さない
Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any)

#define WM_USER &H400                   'ユーザーが定義できるメッセージの使用領域を表すだけでこれ自体に意味はない
#define EM_SETREADONLY &HCF             'エディットコントロールの読み取り専用スタイルを設定する

Var Shared Edit1 As Object
Edit1.Attach GetDlgItem("Edit1")

'================================================================
'=
'================================================================
Declare Sub MainForm_Start edecl ()
Sub MainForm_Start()
    Edit1.SetFocus
End Sub

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var Ret As Long

    Ret = Api_SendMessage(Edit1.GethWnd, EM_SETREADONLY, 1, 0)
    Edit1.SetSelText Len(Edit1.GetWIndowText), Len(Edit1.GetWIndowText)
    Edit1.SetFocus
End Sub

'================================================================
'=
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    Var Ret As Long

    Ret = Api_SendMessage(Edit1.GethWnd, EM_SETREADONLY, 0, 0)
    Edit1.SetSelText Len(Edit1.GetWIndowText), Len(Edit1.GetWIndowText)
    Edit1.SetFocus
End Sub

'================================================================
'=
'================================================================
Declare Sub MainForm_QueryClose edecl ()
Sub MainForm_QueryClose()
    End
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End