作成者 |
メッセージ |
|
|
淡幻星 様
ご返信遅れてしまい申し訳ありません!
最近研究に追われていて、ろくにプログラミングをしていない……
まず、行番号の件、解決しました!
>K2さんのコードの場合は、hFont_MainWndを設定しているので
完全にこれでした…指定し直すとできました!
戻るの方は……まだ謎です。
淡幻星 様
ご返信遅れてしまい申し訳ありません! 最近研究に追われていて、ろくにプログラミングをしていない……
まず、行番号の件、解決しました! >K2さんのコードの場合は、hFont_MainWndを設定しているので 完全にこれでした…指定し直すとできました!
戻るの方は……まだ謎です。
|
|
|
投稿記事 |
Posted: 2015年11月11日(水) 01:53 |
|
|
|
|
|
Beep音が消えたようで良かったです。
Ctrl+Zの件は、、、分かりません。
本件のWM_CHARに対する処理を追加してから、の現象でしょうか?
WM_CHARでCtrl+Zを捉まえては「いない」のですよね?
行番号の件は、、、フォントをうまく取得出来ていないんだと思います。
もし、私が投降したコードを利用しているのであれば、
SelectObject( hDC, SendMessage( hWnd, WM_GETFONT, 0, 0 ) )
の部分で、SendMessage( hWnd, WM_GETFONT, 0, 0 )の値が失敗していないか
確認してください。
※K2さんのコードの場合は、hFont_MainWndを設定しているので、
RADで設定したフォントの縦幅になります。
以上です。
Beep音が消えたようで良かったです。
Ctrl+Zの件は、、、分かりません。 本件のWM_CHARに対する処理を追加してから、の現象でしょうか? WM_CHARでCtrl+Zを捉まえては「いない」のですよね?
行番号の件は、、、フォントをうまく取得出来ていないんだと思います。 もし、私が投降したコードを利用しているのであれば、 SelectObject( hDC, SendMessage( hWnd, WM_GETFONT, 0, 0 ) ) の部分で、SendMessage( hWnd, WM_GETFONT, 0, 0 )の値が失敗していないか 確認してください。 ※K2さんのコードの場合は、hFont_MainWndを設定しているので、 RADで設定したフォントの縦幅になります。
以上です。
|
|
|
投稿記事 |
Posted: 2015年9月05日(土) 19:35 |
|
|
|
|
|
淡幻星 様
ご回答有り難うございます。
引用: 大変間が空いてしまってすみません。
(なかなか来れませんでした・・・)
お忙しい中対応していただきありがとうございます><
感謝感激でございます!
引用: ビープ音を消すには、WM_DOWNでExit Functionするだけでは不十分でした。
WM_CHARを捉まえて、これに対してもExit Functionしてあげてください。
こちらを実行したところ、ビープ音が消えました!ありがとうございます!!
これで、求めていたものはできました!!
……のですが……
Ctrl+Z、つまり、「戻す」機能が思ったように実行できません。
適当に文字を書き、Ctrl+Zを押すと、
普通なら文字が消える(または、以前の文字に置き換わる)はずなのですが、
一番最初の文字に戻ってしまうだけになります。
少しわかりにくいので、以下に詳細の図をば……
この現象は……何故なのでしょうか?
なお、「戻る」は
コード: SendMessage(hEdit,WM_UNDO,0,0)
※hEdit = GetDlgItem(hMainWnd, EditBox1)
を利用しています。
よろしければご教授ください。
淡幻星 様
ご回答有り難うございます。 [quote]大変間が空いてしまってすみません。 (なかなか来れませんでした・・・)[/quote] お忙しい中対応していただきありがとうございます>< 感謝感激でございます!
[quote]ビープ音を消すには、WM_DOWNでExit Functionするだけでは不十分でした。 WM_CHARを捉まえて、これに対してもExit Functionしてあげてください。[/quote] こちらを実行したところ、ビープ音が消えました!ありがとうございます!! これで、求めていたものはできました!!
……のですが……
Ctrl+Z、つまり、「戻す」機能が思ったように実行できません。
適当に文字を書き、Ctrl+Zを押すと、 普通なら文字が消える(または、以前の文字に置き換わる)はずなのですが、 一番最初の文字に戻ってしまうだけになります。
少しわかりにくいので、以下に詳細の図をば…… [img]http://software.jpn.org/error.jpg[/img]
この現象は……何故なのでしょうか? なお、「戻る」は [code]SendMessage(hEdit,WM_UNDO,0,0)[/code] ※hEdit = GetDlgItem(hMainWnd, EditBox1) を利用しています。
よろしければご教授ください。
|
|
|
投稿記事 |
Posted: 2015年9月05日(土) 02:57 |
|
|
|
|
|
大変間が空いてしまってすみません。
(なかなか来れませんでした・・・)
で、先の私の投稿、間違いがありました。大変申し訳ないです。
ビープ音を消すには、WM_DOWNでExit Functionするだけでは不十分でした。
WM_CHARを捉まえて、これに対してもExit Functionしてあげてください。
自コードの場合は、WM_DOWNの処理に続いて、下記のように書いてました。
V~Gと記述しているキーとCtrl同時押しに対して、ビープ音とデフォルト動作を無効化しています。
コード:
Case WM_CHAR
GetKeyboardState( buf )
If( buf[VK_CONTROL] AND &H80 )Then
'Ctrlキーの場合は、独自処理において、エラー音&Def操作を消す。
If( (buf[ Asc("L") ] AND &H80) _
or (buf[ Asc("V") ] AND &H80) _
or (buf[ Asc("A") ] AND &H80) _
or (buf[ Asc("S") ] AND &H80) _
or (buf[ Asc("F") ] AND &H80) _
or (buf[ Asc("H") ] AND &H80) _
or (buf[ Asc("R") ] AND &H80) _
or (buf[ Asc("T") ] AND &H80) _
or (buf[ Asc("N") ] AND &H80) _
or (buf[ Asc("B") ] AND &H80) _
or (buf[ Asc("Q") ] AND &H80) _
or (buf[ Asc("W") ] AND &H80) _
or (buf[ Asc("J") ] AND &H80) _
or (buf[ Asc("U") ] AND &H80) _
or (buf[ Asc("E") ] AND &H80) _
or (buf[ Asc(" ") ] AND &H80) _
or (buf[ Asc("M") ] AND &H80) _
or (buf[ Asc("G") ] AND &H80) _
)Then
MyEditWndProc = 0
Exit Function
End If
End If
なお「行番号付き~」は当方も同じ実装をしているので、
そちらは関係ないと思います。
なお×2、GetAsyncKeyState()は、キーを同時押しが増えると検知できない時があります。
GetKeyboardState()の方がお勧めです。
参考サイト:
http://zahyou.6.ql.bz/cgame/key.htm
http://rina.jpn.ph/~rance/directx8/03/03.html
大変間が空いてしまってすみません。 (なかなか来れませんでした・・・)
で、先の私の投稿、間違いがありました。大変申し訳ないです。 ビープ音を消すには、WM_DOWNでExit Functionするだけでは不十分でした。 WM_CHARを捉まえて、これに対してもExit Functionしてあげてください。
自コードの場合は、WM_DOWNの処理に続いて、下記のように書いてました。 V~Gと記述しているキーとCtrl同時押しに対して、ビープ音とデフォルト動作を無効化しています。 [code] Case WM_CHAR GetKeyboardState( buf ) If( buf[VK_CONTROL] AND &H80 )Then 'Ctrlキーの場合は、独自処理において、エラー音&Def操作を消す。 If( (buf[ Asc("L") ] AND &H80) _ or (buf[ Asc("V") ] AND &H80) _ or (buf[ Asc("A") ] AND &H80) _ or (buf[ Asc("S") ] AND &H80) _ or (buf[ Asc("F") ] AND &H80) _ or (buf[ Asc("H") ] AND &H80) _ or (buf[ Asc("R") ] AND &H80) _ or (buf[ Asc("T") ] AND &H80) _ or (buf[ Asc("N") ] AND &H80) _ or (buf[ Asc("B") ] AND &H80) _ or (buf[ Asc("Q") ] AND &H80) _ or (buf[ Asc("W") ] AND &H80) _ or (buf[ Asc("J") ] AND &H80) _ or (buf[ Asc("U") ] AND &H80) _ or (buf[ Asc("E") ] AND &H80) _ or (buf[ Asc(" ") ] AND &H80) _ or (buf[ Asc("M") ] AND &H80) _ or (buf[ Asc("G") ] AND &H80) _ )Then MyEditWndProc = 0 Exit Function End If End If [/code]
なお「行番号付き~」は当方も同じ実装をしているので、 そちらは関係ないと思います。
なお×2、GetAsyncKeyState()は、キーを同時押しが増えると検知できない時があります。 GetKeyboardState()の方がお勧めです。
参考サイト: http://zahyou.6.ql.bz/cgame/key.htm http://rina.jpn.ph/~rance/directx8/03/03.html
|
|
|
投稿記事 |
Posted: 2015年8月17日(月) 00:23 |
|
|
|
|
|
たかせ様
ご返信有難うございます。
コード: OldEditProc = GetWindowLong(GetDlgItem(hMainWnd,EditBox1),GWL_WNDPROC)
を行ってみましたが変わりありませんでした。
そしてふと思ったのですが、 k2様の「行番号付きエディットボックス」をEditBoxに適応しているのですが、
もしかしたらこれが原因なのでしょうか…?
とりあえず、変わってはいませんがサブクラス化したコールバック関数はこのようになっています
コード: 'EditBox1のサブクラス コールバック関数
Dim OldEditProc As WNDPROC
Function Edit1WndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
If dwMsg = WM_KEYDOWN Then
If (GetAsyncKeyState(VK_CONTROL) And &H8000) Then
If wParam = 65 Then
'Ctrl+Aが押されたら、全て選択する
MainWnd_IDM_SELECTALL_MenuClick()
Else If wParam = 83 Then
'Ctrl+Sが押されたら、保存する
MainWnd_IDM_SAVE_MenuClick()
Else If wParam = 79 Then
'Ctrl+Oが押されたら、ファイルを開く
MainWnd_IDM_OPEN_MenuClick()
Else If wParam = 191 Then
'Ctrl+/が押されたら、文字数カウント
MainWnd_IDM_TEXTCOUNT_MenuClick()
Else If wParam = 70 Then
'Ctrl+Fが押されたら、検索置換
MainWnd_IDM_TEXTSEARCH_MenuClick()
Else If wParam = 188 Then
'Ctrl+,が押されたら、環境設定
MainWnd_IDM_SETTING_MenuClick()
End If
End If
Exit Function
debug
End If
Edit1WndProc=CallWindowProc(OldEditProc,hWnd,dwMsg,wParam,lParam)
End Function
またクリエイトイベントで
コード: 'EditBoxのサブクラス化
OldEditProc = GetWindowLong(GetDlgItem(hMainWnd,EditBox1),GWL_WNDPROC)
SetWindowLong(GetDlgItem(hMainWnd,EditBox1),GWL_WNDPROC,AddressOf(Edit1WndProc) As Long)
としてみました。
よろしくお願いいたします。
たかせ様
ご返信有難うございます。 [code]OldEditProc = GetWindowLong(GetDlgItem(hMainWnd,EditBox1),GWL_WNDPROC)[/code] を行ってみましたが変わりありませんでした。
そしてふと思ったのですが、[url=http://www.activebasic.com/forum/viewtopic.php?f=2&t=1284]k2様の「行番号付きエディットボックス」[/url]をEditBoxに適応しているのですが、 もしかしたらこれが原因なのでしょうか…?
とりあえず、変わってはいませんがサブクラス化したコールバック関数はこのようになっています [code]'EditBox1のサブクラス コールバック関数
Dim OldEditProc As WNDPROC
Function Edit1WndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord If dwMsg = WM_KEYDOWN Then If (GetAsyncKeyState(VK_CONTROL) And &H8000) Then If wParam = 65 Then 'Ctrl+Aが押されたら、全て選択する MainWnd_IDM_SELECTALL_MenuClick() Else If wParam = 83 Then 'Ctrl+Sが押されたら、保存する MainWnd_IDM_SAVE_MenuClick() Else If wParam = 79 Then 'Ctrl+Oが押されたら、ファイルを開く MainWnd_IDM_OPEN_MenuClick() Else If wParam = 191 Then 'Ctrl+/が押されたら、文字数カウント MainWnd_IDM_TEXTCOUNT_MenuClick() Else If wParam = 70 Then 'Ctrl+Fが押されたら、検索置換 MainWnd_IDM_TEXTSEARCH_MenuClick() Else If wParam = 188 Then 'Ctrl+,が押されたら、環境設定 MainWnd_IDM_SETTING_MenuClick() End If
End If
Exit Function debug
End If Edit1WndProc=CallWindowProc(OldEditProc,hWnd,dwMsg,wParam,lParam) End Function[/code]
またクリエイトイベントで [code]'EditBoxのサブクラス化 OldEditProc = GetWindowLong(GetDlgItem(hMainWnd,EditBox1),GWL_WNDPROC) SetWindowLong(GetDlgItem(hMainWnd,EditBox1),GWL_WNDPROC,AddressOf(Edit1WndProc) As Long)[/code] としてみました。
よろしくお願いいたします。
|
|
|
投稿記事 |
Posted: 2015年8月04日(火) 00:50 |
|
|
|
|
|
サブクラスについてあまりよく理解してませんが、
上記のコードで問題ないと思います。
念のためですが上記のコードの直前に下記のようなコード記載されてますか?
OldEditProc = GetWindowLong(GetDlgItem(hMainWnd,EditBox1),GWL_WNDPROC,AddressOf(Edit1WndProc) As Long)
これは元々のこのクラスのプロシージャのアドレスを取得する処理です。
ちなみに私はサブクラスについて下記のトピックを参考にしました。
ボタンの右クリック処理方法は?
問題なく動作します。
よろしくお願いいたします。
サブクラスについてあまりよく理解してませんが、 上記のコードで問題ないと思います。 念のためですが上記のコードの直前に下記のようなコード記載されてますか? OldEditProc = GetWindowLong(GetDlgItem(hMainWnd,EditBox1),GWL_WNDPROC,AddressOf(Edit1WndProc) As Long) これは元々のこのクラスのプロシージャのアドレスを取得する処理です。 ちなみに私はサブクラスについて下記のトピックを参考にしました。 [url=http://www.activebasic.com/forum/viewtopic.php?f=1&t=2684]ボタンの右クリック処理方法は?[/url] 問題なく動作します。 よろしくお願いいたします。
|
|
|
投稿記事 |
Posted: 2015年7月30日(木) 11:02 |
|
|
|
|
|
淡幻星 様
ご返信有難うございます!
たまにチェックさせて頂いております。
サブクラス化の設定なのですが、
コード: SetWindowLong(GetDlgItem(hMainWnd,EditBox1),GWL_WNDPROC,AddressOf(Edit1WndProc) As Long)
こんなかんじで大丈夫でしょうか?
この辺りから間違っていたら大変なので、お先に質問させていただきます
淡幻星 様
ご返信有難うございます! たまにチェックさせて頂いております。
サブクラス化の設定なのですが、 [code]SetWindowLong(GetDlgItem(hMainWnd,EditBox1),GWL_WNDPROC,AddressOf(Edit1WndProc) As Long)[/code] こんなかんじで大丈夫でしょうか? この辺りから間違っていたら大変なので、お先に質問させていただきます
|
|
|
投稿記事 |
Posted: 2015年7月19日(日) 03:45 |
|
|
|
|
|
(だいぶ間が空いてしまったので、見てないかもしれませんが)
引用: こちらなのですが、実際試してもやはりビープ音がなってしまいます
んー、Ctrl+Aが押されたときに正しくExit Functionで
抜けて入れば、ビープ音はならない筈なので、、、
期待したとおりにExit Functionで抜けているか、あたりを
見てみてはいかがでしょうか?
(だいぶ間が空いてしまったので、見てないかもしれませんが)
[quote]こちらなのですが、実際試してもやはりビープ音がなってしまいます[/quote]
んー、Ctrl+Aが押されたときに正しくExit Functionで 抜けて入れば、ビープ音はならない筈なので、、、 期待したとおりにExit Functionで抜けているか、あたりを 見てみてはいかがでしょうか?
|
|
|
投稿記事 |
Posted: 2015年7月12日(日) 15:49 |
|
|
|
|
|
返信遅くなってしまい申し訳ありません。
引用: サブクラス内でキーを判別して独自の処理をした後に、デフォルトのコールバックに戻らず return 0 してみてはどうでしょう
引用: Q:ビープ音を無くすには?
A:サブクラス化したプロシージャ関数の戻り値に「0」を返せばOK。
以下、自コードからの抜粋です。
コード: コード:
'Editboxのサブクラス化プロシージャ。
Function MyEditWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
Dim buf[255] As Byte
Select Case dwMsg
Case WM_KEYDOWN
GetKeyboardState( buf )
MyEditWndProc = 0 'デフォルトを「0」(FALSE)に指定。
If( buf[VK_CONTROL] AND &H80 )Then
'Ctrlキー
If( buf[ VK_SHIFT ] AND &H80 )Then
'Shiftキー併用
If( buf[ Asc("S") ] AND &H80 )Then
'別名保存
SaveAsEditDlgTab()
Exit Function '◆ビープ音無しで抜ける。
End If
' ~中略~
End If
End If
End Select
'独自処理以外は、元プロシージャの戻り値をそのまま返す。
MyEditWndProc = CallWindowProc( vptOrgEdit, hWnd, dwMsg, wParam, lParam )
End Function
こちらなのですが、実際試してもやはりビープ音がなってしまいます。
淡幻星 様の「両手たぶメモ」をDLし、利用した場合ですとビープ音はなりませんでした。
私が書いているコードは以下のようになります。
コード: Function Edit1WndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
If dwMsg = WM_KEYDOWN Then
If (GetAsyncKeyState(VK_CONTROL) And &H8000) Then
Edit1WndProc = 0
If wParam = 65 Then
'Ctrl+Aが押されたら、全て選択する
MainWnd_IDM_SELECTALL_MenuClick()
End If
Edit1WndProc = 0
Exit Function
End If
End If
Edit1WndProc=CallWindowProc(OldEditProc,hWnd,dwMsg,wParam,lParam)
End Function
返信遅くなってしまい申し訳ありません。
[quote]サブクラス内でキーを判別して独自の処理をした後に、デフォルトのコールバックに戻らず return 0 してみてはどうでしょう[/quote]
[quote]Q:ビープ音を無くすには? A:サブクラス化したプロシージャ関数の戻り値に「0」を返せばOK。
以下、自コードからの抜粋です。 [code]コード: 'Editboxのサブクラス化プロシージャ。 Function MyEditWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord Dim buf[255] As Byte
Select Case dwMsg Case WM_KEYDOWN GetKeyboardState( buf ) MyEditWndProc = 0 'デフォルトを「0」(FALSE)に指定。 If( buf[VK_CONTROL] AND &H80 )Then 'Ctrlキー If( buf[ VK_SHIFT ] AND &H80 )Then 'Shiftキー併用 If( buf[ Asc("S") ] AND &H80 )Then '別名保存 SaveAsEditDlgTab() Exit Function '◆ビープ音無しで抜ける。 End If ' ~中略~ End If End If
End Select
'独自処理以外は、元プロシージャの戻り値をそのまま返す。 MyEditWndProc = CallWindowProc( vptOrgEdit, hWnd, dwMsg, wParam, lParam ) End Function[/code][/quote]
こちらなのですが、実際試してもやはりビープ音がなってしまいます。 淡幻星 様の「両手たぶメモ」をDLし、利用した場合ですとビープ音はなりませんでした。
私が書いているコードは以下のようになります。 [code]Function Edit1WndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord If dwMsg = WM_KEYDOWN Then If (GetAsyncKeyState(VK_CONTROL) And &H8000) Then Edit1WndProc = 0 If wParam = 65 Then 'Ctrl+Aが押されたら、全て選択する MainWnd_IDM_SELECTALL_MenuClick()
End If
Edit1WndProc = 0 Exit Function End If End If
Edit1WndProc=CallWindowProc(OldEditProc,hWnd,dwMsg,wParam,lParam) End Function[/code]
|
|
|
投稿記事 |
Posted: 2015年5月24日(日) 04:24 |
|
|
|
|
|
上記の、7さんのコメントで解決してるかもしれませんが、
「独自のショートカットキーを登録」は当方のエディタ(※1)でも
やってる処理なので参考までにコメントします。
Q:ビープ音を無くすには?
A:サブクラス化したプロシージャ関数の戻り値に「0」を返せばOK。
以下、自コードからの抜粋です。
コード:
'Editboxのサブクラス化プロシージャ。
Function MyEditWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord
Dim buf[255] As Byte
Select Case dwMsg
Case WM_KEYDOWN
GetKeyboardState( buf )
MyEditWndProc = 0 'デフォルトを「0」(FALSE)に指定。
If( buf[VK_CONTROL] AND &H80 )Then
'Ctrlキー
If( buf[ VK_SHIFT ] AND &H80 )Then
'Shiftキー併用
If( buf[ Asc("S") ] AND &H80 )Then
'別名保存
SaveAsEditDlgTab()
Exit Function '◆ビープ音無しで抜ける。
End If
' ~中略~
End If
End If
End Select
'独自処理以外は、元プロシージャの戻り値をそのまま返す。
MyEditWndProc = CallWindowProc( vptOrgEdit, hWnd, dwMsg, wParam, lParam )
End Function
※1:両手たぶメモ、ってソフトです(宣伝)。
上記の、7さんのコメントで解決してるかもしれませんが、 「独自のショートカットキーを登録」は当方のエディタ(※1)でも やってる処理なので参考までにコメントします。
Q:ビープ音を無くすには? A:サブクラス化したプロシージャ関数の戻り値に「0」を返せばOK。
以下、自コードからの抜粋です。 [code] 'Editboxのサブクラス化プロシージャ。 Function MyEditWndProc(hWnd As HWND, dwMsg As DWord, wParam As WPARAM, lParam As LPARAM) As DWord Dim buf[255] As Byte
Select Case dwMsg Case WM_KEYDOWN GetKeyboardState( buf ) MyEditWndProc = 0 'デフォルトを「0」(FALSE)に指定。 If( buf[VK_CONTROL] AND &H80 )Then 'Ctrlキー If( buf[ VK_SHIFT ] AND &H80 )Then 'Shiftキー併用 If( buf[ Asc("S") ] AND &H80 )Then '別名保存 SaveAsEditDlgTab() Exit Function '◆ビープ音無しで抜ける。 End If ' ~中略~ End If End If
End Select
'独自処理以外は、元プロシージャの戻り値をそのまま返す。 MyEditWndProc = CallWindowProc( vptOrgEdit, hWnd, dwMsg, wParam, lParam ) End Function [/code]
※1:両手たぶメモ、ってソフトです(宣伝)。
|
|
|
投稿記事 |
Posted: 2015年4月25日(土) 22:06 |
|
|
|
|
|
サブクラス内でキーを判別して独自の処理をした後に、デフォルトのコールバックに戻らず return 0 してみてはどうでしょう
動作確認もしてないですしサブクラス内がどうなってるのかも分からないので当てずっぽうですが
サブクラス内でキーを判別して独自の処理をした後に、デフォルトのコールバックに戻らず return 0 してみてはどうでしょう 動作確認もしてないですしサブクラス内がどうなってるのかも分からないので当てずっぽうですが
|
|
|
投稿記事 |
Posted: 2015年4月14日(火) 18:22 |
|
|
|
|
|
お世話になっています。
エディタを作っているのですが、複数行EditBoxで独自のショートカットキーを登録しようとしています。
今やっている方法として、EditBoxをサブクラス化し、キーのメッセージを受け取って、それに応じて処理を行うといった形にしているのですが、
この方法をすると、最初から登録されているショートカットキー以外の物を入力すると、
ビープ音がなってしまいます。
これを無くしたいのですが、どのようにすればいいのでしょうか。
ご存じの方がいらっしゃいましたら、ご教授ください。
よろしくお願いいたします。
お世話になっています。
エディタを作っているのですが、複数行EditBoxで独自のショートカットキーを登録しようとしています。 今やっている方法として、EditBoxをサブクラス化し、キーのメッセージを受け取って、それに応じて処理を行うといった形にしているのですが、 この方法をすると、最初から登録されているショートカットキー以外の物を入力すると、 ビープ音がなってしまいます。 これを無くしたいのですが、どのようにすればいいのでしょうか。
ご存じの方がいらっしゃいましたら、ご教授ください。
よろしくお願いいたします。
|
|
|
投稿記事 |
Posted: 2015年3月25日(水) 04:10 |
|
|
|
|