EditBoxでEnterを押したときの時の警告音を無くしたい

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: EditBoxでEnterを押したときの時の警告音を無くしたい

by doloop » 2006年11月16日(木) 21:41

うまく行きました。
ありがとうございます。

by Tomorrow » 2006年11月16日(木) 18:29

試してみたところ、EditBoxはWM_KEYDOWNではなくWM_CHARでキー処理をするみたいです。

by doloop » 2006年11月16日(木) 17:20

試してみましたが、やっぱり鳴ります。

コード: 全て選択


Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
     OldProc=SetWindowLong(GetDlgItem(hMainWnd,EditBox1),
                                          GWL_WNDPROC,
                                          AddressOf(SubclassProc) As LONG_PTR
                                          ) As VoidPtr
End Sub
とすればいいんですよね?

Re: EditBoxでEnterを押したときの時の警告音を無くしたい

by Tomorrow » 2006年11月16日(木) 14:51

EditBoxをサブクラス化してWM_KEYDOWNメッセージでリターンキーをスルーするのはどうでしょう?

コード: 全て選択

'サブクラス化で差し替えるウィンドウプロシージャ
Function SubclassProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord 
	If dwMsg=WM_KEYDOWN And wParam=VK_RETURN Then
		'何もしない
		SubclassProc=0
		Exit Function
	End If

	'元のウィンドウプロシージャを呼ぶ
	SubclassProc=CallWindowProc(OldProc,hWnd,dwMsg,wParam,lParam)
End Function

EditBoxでEnterを押したときの時の警告音を無くしたい

by doloop » 2006年11月16日(木) 00:10

EditBoxで”改行を許可””複数行”をチェックせずに

コード: 全て選択


Function MainWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
    ' TODO: この位置にウィンドウメッセージを処理するためのコードを記述します。
    Select Case hWnd
        Case GetDlgItem(hMainWnd,EditBox1)
            If dwMsg=WM_KEYDOWN And wParam=VK_RETURN Then
                '何らかの処理
                MainWndProc=1
            End If
       MainWndProc=CallWindowProc(lpOldWndProc[0],hWnd,dwMsg,wParam,lParam)
        Case Else
            MainWndProc=EventCall_MainWnd(hWnd,dwMsg,wParam,lParam)
    End Select

End Function


という方法で、
EditBox上でEnterキーを押したときに、
ある処理をするプログラムを作ろうとしています。

Enterキーを押したときに警告音が鳴ってうるさいので止めたいのですが、どうしたら良いのでしょう?
教えてください。

ページトップ