2011-04-28 24 views
5

簡単な質問:SystemParametersクラスは正確には何ですか?それは単に "デフォルト値"の集まりですか、それとも実際にはウィンドウに夢中になっていますか?SystemParametersを変更してください

は背景:ドラッグ&ドロップ操作のために、我々はtouch用のD & D.を検出するSystemParameters.MinimumHorizo​​ntalDragDistanceとSystemParameters.MinimumVerticalDragDistanceプロパティを使用しているが、デフォルトの値が小さいにされる画面と、私はいくつかの構成を実装する必要がある場合、私は思ったんだけどこの値を変更するためのメカニズムや、何らかのシステム設定をどこかで変更できるかどうか(レジストリやコントロールパネルなど)

ありがとう!

更新:以下の詳細な回答で、私は最終的に私が探しているものを見つけました。ただ、参考のために誰が将来的にそれを探している場合:最小ドラッグの距離は、レジストリの両方の値が4(PX)に設定されているデフォルトでは

HKEY_CURRENT_USER\Control Panel\Desktop\DragHeight 
HKEY_CURRENT_USER\Control Panel\Desktop\DragWidth 

に変更することができます。変更は再起動後にのみ有効です。

答えて

6

Windows全体のさまざまな場所で指定されているように、ユーザーの現在の設定が反映されます。いくつかの設定は、コントロールパネルのユーザーが簡単に変更でき、その他の設定はレジストリ値のように不明瞭な場所にあります。

最終的には、Windows APIのGetSystemMetrics functionを管理対象とするラッパーです。

documentationは、プロパティによって公開される各値の取得場所に関するより詳細な情報を提供します。例えば、SystemParameters.MinimumHorizontalDragDistance propertyは、ドラッグ操作が開始される前にマウスポインタの制限された移動を可能にするために、ドラッグポイントを中心とする矩形の幅に対応します。基本的に、システムがドラッグを開始すると解釈する前に、ユーザがカーソルをバンプまたはジョーすることが許される「余裕」です。

GetSystemMetrics機能ではSM_CXDRAGにマップされていることも記載されています。したがって、より詳細な情報が必要な場合は、ネイティブ関数のドキュメントを閲覧することができます。

マウスポインタが移動できるマウスダウンポイントの両側のピクセル数ドラッグ操作が開始される前にこれにより、意図せずドラッグ操作を開始しなくても、マウスボタンを簡単にクリックして離すことができます。この値が負の場合は、マウスダウンポイントの左から減算され、右に追加されます。

要するに、間違いなく「Windowsに接続」されています。これは、開発時に望ましいと思われる値をハードコーディングするのではなく、システム設定を決定する適切な方法です。あなたのアプリケーションは、システムがすでにユーザの設定を許可しているものに対して、独自の設定インタフェースを公開するべきではありません。それは冗長で混乱しています。

+0

非常に詳細な回答ありがとう!私は、パラメータが何をしているのか、それが何のために使われているのかをよく知っています。私は実際にシステム内でそれを設定する場所を探していました。一方、...私は特にそれを求めていませんでした:)あなたの答えは正しい軌道に乗ってきました! – harri

+0

@harri:Ack!このような設定を変更するには、レジストリを直接変更しないでください。 [それについての文書化されたAPI](http://blogs.msdn.com/b/oldnewthing/archive/2009/04/10/9541813.aspx)があります。'SystemParametersInfo'関数は、' SPI_SETDRAGHEIGHT'と 'SPI_SETDRAGWIDTH'パラメータで欲しいです。 –

+0

事は:私は設定を変更するコードを書いたくありません。 D&D距離を増やす要求は、タッチスクリーンでアプリケーションをテストしたときのテスターからのものでした。タッチスクリーンでは、D&D操作を開始せずにアイテムをクリックすることはほとんど不可能です。しかし、この問題はソフトウェアに固有の問題ではなく、システム全体に当てはまります。だから私は私たちのソフトウェアが値を調整することを望んでいません。むしろ、OS全体のために実行する必要があり、紛らわしいものです。 – harri

関連する問題