Re: MakeKeyInputの不具合について ( No.1 ) |
- 名前:Will 日時:2012/11/29 16:22
サンプルソースで試してみましたが再現しませんでした。
ペーストする文字列の最後が改行の場合はCheckKeyInputが1になりますが、
その場合でも最後の文字まで入力されて改行で1になるので、
> 入力が完了していないにもかかわらずCheckKeyInput関数から1が返ってきます。
という現象は確認できませんでした。
環境:Win7Pro、Visual Studio2010
|
Re: MakeKeyInputの不具合について ( No.2 ) |
- 名前:PATOLE 日時:2012/11/29 20:59
Willさま
失礼しました。こちらの環境でも試したところ
おっしゃるとおり、『改行』が含まれていた場合に発生するようです。
MakeKeyInputで指定した文字数は関係ないようでした。申し訳ないです。
これは仕様なのでしょうか?
改行が含まれている場合は、CTRL + Vを押した時点で
エンターキーを押下していないにも関わらず
CheckKeyInputから1が返ってくるのが少し疑問なのですが……。
|
Re: MakeKeyInputの不具合について ( No.3 ) |
- 名前:Will 日時:2012/11/30 13:44
管理人さんがどうお考えかはわかりませんが、一般的にエンターキー=改行ですから私はさほどおかしい動作とは思いません。
「キーを押された」かではなく、キーを押した結果「入力された文字」で判断していたら
見分ける術がないと思います。
そもそも、KeyのInputを待つ関数ですから文字列データのコピペしている(=文字をキー入力していない)時点で、
想定外の使用方法だといえなくもありません。
PATOLEさんの言い回しを真似れば
「文字キーを押していないのにペーストによって文字入力ができてしまうのはおかしいと思います」
とね。(極論ですけど)
ま、MakeKeyInputで改行コードによって終了する/しないを設定できればベストとは思いますが、
改行以外のタブ等の制御コードを含む文字列をペーストすると思わぬ動作をするかもしれないですね。
|
Re: MakeKeyInputの不具合について ( No.4 ) |
- 名前:管理人 日時:2012/12/02 04:55
仕様というか、想定外だったので、とりあえずコピー&ペーストした文字列の中に
改行文字が含まれていても文字列入力が終了しないようにしました
よろしければお試しになってみてください m(_ _)m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
> Willさん
私も「勝手に文字入力されていたら判別の仕様が無いな」と思っていたのですが、
ソフトに飛んでくるメッセージは「CTAL + V された」という情報だけで、
実際にクリップボードから文字を引っ張ってくる処理はDXライブラリ内にあったので
そこで改行文字を弾くことができました
MakeKeyInput の引数を追加することも考えたのですが、コピペした文字列の中に
改行文字が合って、それが原因で入力が終了してしまっても問題ない( or 都合が良い )
状況はあまりなさそうだったので、引数は追加せずにしました
|
Re: MakeKeyInputの不具合について ( No.5 ) |
- 名前:PATOLE(解決済み) 日時:2012/12/02 11:43
管理人さま
ありがとうございます!
無事に問題を解決することができました。
Willさんも、意見ありがとうございました。
|