エディットボックスの読取専用設定・解除 <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