リストコントロールのスクロールバーを操作無効にする方法
- VC++でMFCのダイアログベースのアプリケーションを作成しています。
- リストコントロールの垂直スクロールバーの操作を無効化し、キー操作で移動する方法を知りたいです。
- 現在の開発環境はWindows CE 6.0とVisual Studio 2005です。
- ベストアンサー
リストコントロールのスクロールバーを操作無効にするには
お世話になります、fujicafeと申します。 現在、VC++でMFCのダイアログベースのアプリケーションを作成し、そこでリストコントロールを配置させています。 リストコントロールは自動的に垂直方向のスクロールバーを表示させるようにしています。 そこで質問なのですが、現在、リストコントロールの垂直方向のスクロールをスクロールバーの操作ではなく、キー操作によって行おうと思っているのですがどのようにすればスクロールバーの操作を無効にできますでしょうか? ポイントとしては ・リストコントロールの自動的に表示させる垂直スクロールバーはそのまま表示させたい(スクロールバーは全体行での現在の行の位置を示すだけ) ・リストコントロールの垂直方向の移動はキー操作でしたい。 これを実現するには、やはりリストコントロールのスクロールバー表示を無しにし、別でスクロールバーを設置させるしか方法はないでしょうか? 現状で、キー操作でのリストコントロールのスクロールバーの操作は実現できていますので、出来ればリストコントロールのスクロールバーの操作の無効のみが出来ればいいなと思っております。 ご意見がありましたら、よろしくお願いいたします。 尚、開発環境は Windows CE 6.0 Visual Studio 2005 です。
- fujtomo
- お礼率73% (60/82)
- C・C++・C#
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>出来ればリストコントロールのスクロールバーの操作の無効のみが出来ればいいなと思っております。 試していないので、アイディアだけですが、WM_NCHITTESTを処理して、HTVSCROLLを返さないようにするのはどうでしょうか?
関連するQ&A
- スクロールバーでのピクチャーコントロールやリストビューの移動
お世話になります。 今回お聞きしたいことは MFCでダイアログ上にリストコントロールとスクロールバー、またはピクチャーコントロールとスクロールバーを設置した際に、スクロールバーの移動に伴って、リストコントロール内の列や、ピクチャーコントロールに表示されている画像の見えている箇所を移動させることが出来るかどうか。 です。 まだ、本格的にプログラムを作り始めてるわけではないのですが、事前にこのような動作が実現可能かどうかお聞きしたく、質問させて頂きました。 もしご存知の方がいましたら、参考になるHPや方法を教えていただければと思っています。参考になるHPがなくても、実現可能かどうかだけ教えて下さるだけでも結構ですので、宜しくお願い致します。 開発環境は Windows CE 6.0 Visual Studio 2005 です。
- ベストアンサー
- C・C++・C#
- MSFlexGridのスクロールバー位置
VB5(SP3)です。 ある検索条件でMSFlexGridに100行表示させた後、垂直スクロールバーで50行ほど下方向にスクロールさせます。 この状態で違う検索条件で1行表示させた時、垂直スクロールバーの位置が変わらないため(TOPにこない)に何も表示されません。垂直スクロールバーを上方向にスクロールさせれば出てきます。 垂直スクロールバーをTOP位置に持ってくる方法はありませんか? MSFlexGrid.VscrollBar.Value=0とかあれば・・・・
- ベストアンサー
- Visual Basic
- リストボックスをクリックしたときにスクロールバーが勝手に動いてしまう
vb2008で開発を行っています。 チェックボックスつきのリストボックスのチェックボックスをクリックしたときに、フォーム全体のスクロールバーが自動的にリストボックスに合わせて動いてしまい、非常に使いづらく、見づらいです。 この自動操作を無効にはできないでしょうか?どなたか回答をお願いします。
- 締切済み
- Visual Basic
- スクロールバーの操作(?)
いつもお世話になっています。 Excel2000VBAで、フォーム上にListViewコントロールを使用して、あるデータを表示しています。 Timerでカウントをとり、10秒毎に上から順に反転(選択状態)するプログラムを作成しました。 ここまではよいのですが、例えばリストのデータが50項目あった時に、画面上では10項目しか表示できない(高さの関係で)場合、上記プログラムだと11項目目から、ListViewの高さを越えてしまう為、隠れてしまいます。(スクロールバーを手動で下げれば見える) そこでご質問なのですが、スクロールバーをプログラム上から操作することは可能なのでしょうか? ListView以外のコントロールでもAPIでも構いません。 どなたかご教授下さい。
- ベストアンサー
- Visual Basic
- リストボックスに縦スクロールバーと選択
VB初心者です。よろしくお願いします。ちょっと教えて頂きたいのですが、リストをコントロール配列にして例えばList(1)の何行目かをクリック(選択)したらList(0)とList(2)の同じ行に選択状態をうつしたいのですがどうやったらいいのでしょうか?それから縦スクロールバー(VScroll)とリストの配列をどうして連結したらいいのかわかりません。スクロールしたらリストが最後の行までうごいてくれるには?ご教授頂けないでしょうか?ちなみにListのなかには500行ぐらいあります。 List(0) List(1) List(2) 縦スクロールバー ------------------------------ xxxxxx xxxxxxxx xxxxxxx xxxxxx xxxxxxxx xxxxxxx ----------------------------- どうか、よろしくお願いします。
- ベストアンサー
- Visual Basic
- Win32のリストコントロールで縦スクロールはできませんか?
こんにちは。Win32のリストコントロールについて質問です。 リストコントロールでアイコン表示で使用しています。 リストコントロールでアイコンをたくさん表示させると、縦幅に入る範囲で アイコンが複数行表示され、入らないアイコンは横スクロールさせることで 表示できますが、これを縦スクロールベースにはできないものでしょうか ?
- ベストアンサー
- C・C++・C#
- リストビューのスクロールバーについて
いつもお世話になっております。 リストビューのスクロールバーについて教えて頂きたい事がございます。 ご教授よろしくお願いします。 リストビューにスクロールバーが表示されているのか?表示されていないのか?を判定する方法はありますか? よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 階層フレキシブル グリッド コントロール のスクロールバーを表示しない状態でスクロールさせる方法は?
VB6.0で階層フレキシブル グリッド コントロールを 3個をそれぞれ明細部・縦計部・横計部として使用して、 スクロールを連動させて表示したいと思っています。 ただ、グリッドコントロールのそれぞれにスクロールバー を表示させるのはあまり見栄えがよくないので、 垂直スクロールバーで、明細と横計の上下スクロール、 水平スクロールバーで、明細と縦計の左右スクロールを 制御しようと思い、 とりあえず、グリッドコントロールの ScrollBarsプロパティーをflexScrollNoneに設定してTopRowプロパティーとLeftColプロパティーの値を 適当に設定してみたのですが、左上のセルは(1,1) が表示されたままでした。 なんとか、うまくスクロールさせる方法はないでしょうか?
- 締切済み
- Visual Basic
- エクセルのスクロールバー
3000行程度のエクセルシートを操作していたのですが、 いつもは右にあるスクロールバーが、 3000行の部分を最終行として対応していました。 ところが、1回操作をあやまってしまったようで、 現在は65535行目が最終行になってしまいました。 戻すやり方はありますか? つまり3000行以降の無データの部分に関して 右のスクロールバーを対応させないということです。 わかる方がいましたらお教えください。
- ベストアンサー
- オフィス系ソフト
- リストビューのスクロールについて
VC.NET MFC でリストビュー(CListCtrl)を使用しています。 そのリストビューにある垂直スクロールバーを操作しても、 PreTranslateMessage()になにもコマンドが送られてきません。 ・・・(1) また、LVN_BEGINSCROLLのハンドラを追加してみたんですが、 コンパイル時にLVN_BEGINSCROLLを認識してもらえません。 (コンパイルエラー) ・・・(2) いろいろ調べてcommctrl.hをインクルードしても 必要なDLL(Comctl32.lib ? Comclt32.lib)をプロジェクトに参加させても認識してもらえませんでした。 リストビューのスクロールバー操作時の処理をオーバーロードしたいのですが、できなくて困っています。 どのようにすればよろしいでしょうか? 助言のほどよろしくお願いします。
- 締切済み
- C・C++・C#
お礼
titokani様、返答が遅くなり大変申し訳ございませんでした。ご回答ありがとうございます。 さっそく、WM_NCHITTESTを試してみたところどうも現在の開発環境であるWindows CE ではこのコマンドが対応されておらず、メッセージを取得することができませんでした。 なので、対応としてCListCtrlの派生クラスを新たにダイアログのサブクラスとして作成し、その派生クラス内でWM_VSCROLLメッセージの処理をすることで実現することが出来ました。 貴重なご意見ありがとうございました。