問題タブ [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.
c++ - CListCtrl のちらつきを防ぐにはどうすればよいですか?
LVS_REPORT
仮想モード ( ) でCListCtrl/CListView レポート ビュー ( LVS_OWNERDATA
) をLVS_EX_DOUBLEBUFFER
有効にして使用していますが、見苦しいちらつきが発生します。ダブルバッファには実際の効果がありますが、すべてのちらつきを止めるわけではありません (非常に遅くなることなく)。
大量の再作業が必要な他のコントロール (ObjectListView など) への切り替えは考えていません。
ちらつきはどのように動作しますか。
- 列のサイズ変更時 - 背景は最初にライトグレーを使用してきれいになり、その後テキストが表示されます (背景は白)
- マウス スクロール時 (アニメーション) - 非常に短時間、新しい行が表示される領域に薄い灰色のバーが表示されます。
再描画する必要がある領域のデフォルトのウィンドウ背景色 (ライトグレー) を使用して背景をきれいにしているようです。
ちらつきの問題を解決するにはどうすればよいですか?
c++ - C ++ / MFC:複数のCListCtrlのヘッダーHDN_ITEMCLICKイベントの処理
レポートビューに複数のCListCtrlを含むダイアログボックスがあるMFCアプリケーションをコーディングしています。そのうちの1つを並べ替え可能にします。だから私はHDM_ITEMCLICKイベントを処理し、すべてがうまく機能します..別のCListCtrlのヘッダーをクリックすると、他のCListCtrlがソートされることを除いて、それはちょっとばかげているように見えます。
これは明らかに、ヘッダーのIDが0であるため、メッセージマップのエントリは次のようになります。
しかし、すべてのヘッダーのIDがゼロであるため、ダイアログのすべてのヘッダーがメッセージを送信しているようです。
この問題を回避する簡単な方法はありますか?
編集:たぶん私は明確ではありませんでしたが、NMHDR構造内の値を確認しました。HwndFromポインターは、クリックされたヘッダーによって異なりますが、実行ごとに値が明らかに異なるため、あまり役に立ちません。idFrom値は0です。これは、上記で説明した理由により、すべてのヘッダーのIDであるためです。ありがとう
EDIT2:hwndポインターの値もCListCtrlに対応していません。これは、おそらく完全に別のオブジェクトからのものであるためです。
mfc - OnMeasureItem()の問題
MFC ListControlでOnMeasureItem()を使用して行の高さを増やし、マップにWM_ON_MEASUREITEM()メッセージを追加しました。私が使用したコードは次のとおりです。
void CListCtrlTestDlg :: OnMeasureItem(int nIDCtl、LPMEASUREITEMSTRUCT lpMeasureItemStruct)
{{
if(nIDCtl == IDC_LIST1)//IDC_LIST1は私のListControlIDです
}
動作しません。問題が何であるかについての提案???
ありがとうございました!!!!
mfc - CListCtrl の列幅の自動サイズ変更
CListCtrl
列の幅を自動的にサイズ変更するにはどうすればよいですか? 通常、リスト内の項目が長くなりすぎると、バックエンドが表示されなくなり、ユーザーは対応する列の幅を手動でサイズ変更する必要があります。コードでこれを行う方法はありますか?
mfc - リスト コントロール MFC のエントリ数の制限
リスト コントロールに表示されるエントリを制限する必要があるのは、エントリが 2 つあると MFC プログラムが遅くなるためです。リスト コントロールに最後の数エントリ (たとえば、最新の 100 エントリなど) のみを表示する方法はありますか?
ありがとうございました!!!
c++ - 一度に 1 つのノードだけでなく、ツリー全体のビューを取得するために MFC CListCtrl と CTreeCtrl を結合する
Windows Explorer (または regedit など) を検討してください。左側にはツリー ビューがあり、右側にはリスト ビューがあります。私が知っているすべてのケースで、右側のビューの内容は、左側のペインで選択したノードの属性を反映しています。これはすべてうまくいっています...しかし、私が望むものではありません。
表示したいツリーのノードには、各ノードに関連付けられた非常に少数の属性 (2 ~ 3) があります。これは、テーブルの行として水平方向に表示するのに妥当な量です。非常に少ないプロパティを持つ単一のノードでそのリスト ビュー スペースをすべて無駄にするのではなく、リスト ビューにツリー全体のプロパティのテーブルを (現在展開されているツリーの一部として) 表示したいと考えています。したがって、左側のビュー (ツリー) の n 番目の行は、右側のビュー (リスト/テーブル) の n 番目の行に直接対応し、ツリーのプロパティの適切な概要が得られます。
これを行うコードを知っている人はいますか? CListCtrl を CTreeCtrl にスレーブ化するのが最善の方法であり、何らかの方法で垂直スクロール機能をオーバーライドして、それらが一緒にロックされるようにしていると推測しています。このようにスクロールを一緒にロックできるかどうかはわかりません...とりわけ!すべてのアドバイスを歓迎します:-)
mfc - CListCtrlでCHeaderCtrlをカスタムバージョンに置き換える正しい方法
CListCtrlにはCHeaderCtrl'が組み込まれており、カスタマイズされたもの、つまりCHeaderCtrlから派生したクラスでオーバーライドしたいと考えています。
CListCtrlm_ListとカスタムヘッダーCCustomHeaderを含むダイアログCMyDlgがあると仮定すると、これを行うための最良/正しい方法は何ですか。
c++ - CListCtrlの上下のアイコン
複数の列を持つCListCtrlがあり、すべてを並べ替えることができます。現在どの列がどの方向にソートされているかが明確になるように、上下のアイコンを追加したいと思います。Windowsエクスプローラによく似ています。私の考えは、列名に上向き/下向きの実線の矢印を追加することでした。拡張ASCII文字30/31を使用してみました。しかし、矢印を表示する代わりに、ボックス(「文字が見つかりません」の文字)を取得しました。Unicodeバージョンを使用すると、文字の代わりに疑問符が表示されます。
これをどのように達成できるかについての提案はありますか?
visual-c++ - 仮想リスト制御の問題
仮想照明コントロールを使用しており、マップからデータを取得しています。私の問題は、コードを実行するとリストが正常に表示されることですが、マウスカーソルがリストコントロールに移動するか、下にスクロールしようとすると、マップ/セットイテレーターが参照解除可能ではないというデバッグアサーションエラーが発生します。私の GetDispInfo() メソッドは次のとおりです。
}
また、マウス ポインターがリスト コントロールの上にある場合、output.c ファイルで以下に示す行からのアクセス違反を示して、プログラムが再びクラッシュします。
誰も同じ経験をしましたか?ここで何が間違っているのか、どうすればこの問題を解決できますか?
ありがとう!
c++ - 「キャンセル」キーを押して CListCtrl の編集をキャンセルするにはどうすればよいですか?
CListCtrl コントロールの項目を編集しています。テキストを入力できる編集ボックスが表示されます。
ただし、テキストを入力するイベントは、LVN_KEYDOWN ハンドラーによってキャッチされません。
それ以外の場合はどうすればキャッチできますか?サンプルはありますか?
ありがとうございました