2

皆さん!リストビュー(アイコンモード)を使用して、画像とラベルで構成されるアイテムを表示します。ショットでわかるように、行の高さはラベルの長さに応じてyで変化します。問題は、完全なラベルを描画したいのですが、それらは自動的に2行に縮小されます。 長すぎる文字列はすべて切り捨てられています

奇妙なことに、アイテムを選択すると、ラベル全体が表示されます。 選択した項目は切り捨てなしで表示されます これは、アイテムの選択を解除した場合にも当てはまりますが、別のアイテムを選択すると、そのアイテムだけが完全に表示されます。私の場合、(テキストを手動で描画せずに)切り捨てを回避する方法はありますか?この質問に答えるためにコードが必要な場合は、遠慮なく質問してください。

ご挨拶、サタラ

4

1 に答える 1

1

これはデザインの選択だったと思います。物事をすっきりさせます。たとえば、すべてのラベルが完全に表示されたデスクトップを想像してみてください...私の場合は乱雑に見えます。

ただし、自分でラベルを描画することでこれを修正できます。リストコントロールによって提供されるサービスであるカスタム描画を調べてください。通常はオールオアナッシングのアプローチであるため、境界線、画像、ラベルなど、すべてを自分で描画する必要があります。もう1つのオプションは、ハッキーにすることです。ウィンドウをサブクラス化し、Windowsの実行後にラベルを再度描画します。いくつかのメッセージに応えて(残念ながら、Windowsはペイントを制限していませんWM_PAINT。これは昔から残っている最適化です...)

于 2012-12-28T10:51:10.430 に答える