問題タブ [clistctrl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
697 参照

mfc - CListCtrl で別の列項目をクリックすると複数選択が失われる

  1. スクリーンショットをご覧ください(サンプルです)
  2. 最初の列は「名前」、2番目の列は「ステータス」の2列のリストビューがあります
  3. 2列目の電球をクリックすると、ステータスが「オン」と「オフ」の間で変更されます
  4. 現在、複数選択機能を実装する必要があります。ctrl または shift を使用して複数の行を選択し、それらのいずれかの「電球」をクリックして、選択したすべてのアイテムのステータスを切り替えます。

問題は:

「電球」をクリックすると、選択したマルチが失われます。API GetSelectedCount を使用すると、0 が返されることを意味します。

私の調査:

「電球」をクリックすると、アイテム変更に関するイベントがトリガーされます。OnItemChanged イベントは OnClick イベントの前にトリガーされます (そのため、API GetSelectedCount はイベント OnClock で 0 を返します)。イベント OnItemChanged で複数選択されたアイテムをキャッシュしたかったのですが、すべてのアイテムが OnItemChanged イベントを 1 回トリガーするため失敗しました。

例: リスト ビューで 3 つの項目を複数選択し、3 番目の項目の「電球」をクリックすると、イベント OnItemChanged が 3 回トリガーされ、3 つの項目が選択解除されたことを通知します。そのため、(電球をクリック) の OnClick イベントでは、以前の操作でどの項目が選択されていたのかわかりません。

さらに、「電球」をクリックした後も複数選択を維持したいです。

どんな助けでも大歓迎ですか?

ON_NOTIFY_REFLECT(LVN_ITEMCHANGED, OnItemChanged)

ON_NOTIFY_REFLECT_EX(NM_CLICK, オンクリック)

void CListCtrl::OnItemChanged( NMHDR* pNMHDR, LRESULT* pResult ) {......}

BOOL CListCtrl::OnClick(NMHDR* pNMHDR, LRESULT* pResult) {......}

スクリーンショットのサンプル

0 投票する
1 に答える
1284 参照

c++ - スムーズなスクロール アニメーションを作成するにはどうすればよいですか?

CListCtrlは約100,000以上のエントリを持っています。ユーザーには、これらのエントリを検索するための検索ボックスが表示されます。一致するものが見つかったら、それを選択範囲として設定し、 を使用してスクロールしEnsureVisibleます。

このスクロールは瞬時に行われます。私は、ここでデモされているものに似たアニメーション(特に「Go Top - Easing 2」アニメーション) をコーディングしてみたかったのです。

私は、基本的なアニメーションについて、

  1. 現在の選択を取得します。
  2. ターゲット選択を取得します。
  3. 差を計算します。
  4. 1 つのアイテムのピクセルの高さを取得します。
  5. 手順 3 と 4 の結果を乗算します。
  6. Scroll増分 = ステップ 5 の結果になるまでの遅延を伴う 1 (または他のより最適な値) の増分。

私はこれを試しましたが、信じられないほど混乱しました。まず、私のアルゴリズムは大丈夫ですか?第二に、これを達成するための別のより良い方法はありますか (できれば上記のリンクのアニメーション 2 に似ています)。

0 投票する
2 に答える
1279 参照

swt - SWT を使用してイメージ リスト コントロールを実装する方法は?

swt を使用してイメージ リスト (中程度のアイコンを使用した Windows エクスプローラーなど) コントロールを簡単に実装する方法について誰か考えがありますか? WindowsのC++ではCListCtrlで簡単にできそうですが、swtでは簡単ではないでしょうか?ヒントをいただければ幸いです。

0 投票する
1 に答える
3744 参照

c++ - リスト コントロールの MFC ダイアログ コンボ ボックス

テキストの列を表示するリスト コントロール (レポート ビュー) を持つダイアログ ウィンドウを作成しようとしています。最初の列の可能なアクションのリストを保持するコンボ ボックスを表示する別の列を追加しようとしています。MFCでこれを行う簡単な方法はありますか?

0 投票する
0 に答える
728 参照

c++ - MFC。クラス CListCtrl。シンボルで可能な最大列幅を決定する方法は?

MFC は、クラスのインスタンスの列の最大幅を取得するためのインターフェイスを提供しますCListCtrlか? もしそうなら、それは何ですか?ありがとう。

更新:これは、値の使用方法を示す小さなコード スニペットです。