1

この質問は、行をプログラムで更新する方法を理解することです。詳細。ファイルまたはダイアログの編集コントロールからデータを受け入れるlistcrtlがあります。アイテムが追加されると、追加した位置がわかるので、サブアイテムのテキストを変更できます。リストに並べ替え機能を実装したので、位置が変わり続けています。行を認識できるように、各行に識別子列があります。ここで、外部イベントから、私が知っている ID の他の列の値を変更する必要がある場合は、最初に id 列を比較してアイテムの位置を見つけ、次にその位置でサブアイテムテキストを設定する必要があります.

これは、最初に行を見つけるのに時間がかかり、次に列を更新する必要があることを除けば、うまく機能します。

さて、行を直接取得するには、助けが必要です。http://msdn.microsoft.com/en-us/library/windows/desktop/hh298346(v=vs.85).aspxを調べました が、これは MFC を使用しません。これを達成するのを手伝ってください。

4

1 に答える 1

2

多くの項目がある場合は、仮想リストへの切り替えを検討する必要があります。これは、データにアクセスする最速の方法です。これに時間を費やしたくない場合、最も簡単な方法は次のとおりです。

  1. CListCtrl に値を設定するときは、SetItemData() メソッドを使用して各アイテムの ID をアイテム データに格納します。再ソート後も、ID は常にアイテムに関連付けられます。
  2. 必要なアイテムを見つける必要がある場合は、すべてのアイテムをスキャンするだけで、GetItemText() は使用しません。代わりに GetItemData() を使用してください。これで速くなる
于 2013-01-09T06:26:44.353 に答える