問題タブ [clistbox]

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 に答える
522 参照

mfc - MFC で CListBox の個々の項目を太字に設定する

私はこの記事に出くわしました:

http://asg.unige.ch/Past/fuentes/Mfc/HowTo_44.html

そのため、プロジェクトでクラスを再現しました。

その後、アプリケーションで使用しました。ownerdraw などのプロパティを正しく設定しましたが、結果は次のとおりです。

リストボックス出力

太字が最後です。正しくレンダリングされないのはなぜですか?

これを修正するにはどうすればよいですか、また、これを行うための新しい方法はありますか?

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

c++ - MFC - オプションのチェックボックスを含む CListCtrl 行

CListCtrl実行時に、MFC を使用して単一列のカスタム(またはCMFCListCtrlCheckListBox将来的に複数の列を追加できるようにしたい)を作成しようとしています。スタイルを使用LVS_EX_CHECKBOXESすると、すべてのアイテムにチェックボックスが強制されます。目的のコントロールは次のようになります (item1 と item3 にはチェックボックスがありますが、item2 にはありません)。

ここに画像の説明を入力

ユーザーの観点から、目的のリスト コントロールは次のように作成する必要があります。

これまでのところ、このようなコントロールを作成できましたが、追加すると、基本クラスのメソッドLVS_OWNERDRAWFIXEDを呼び出すときに失敗したアサーションがトリガーされます。CListCtrl::DrawItem

ここに画像の説明を入力

これは私の(機能していない)ソリューションがどのように見えるかです。これを解決する方法を知っている場合は、もっと簡単な方法でも教えてください。ありがとう。

編集

@Landstalker の助けを借りて、カスタム描画でチェックボックスを消去できるようになりましたが、テキストを左に移動する必要があります (上の図のように、存在しないチェックボックスの代わりになります) )。現在のソリューションの結果は次のとおりです。

ここに画像の説明を入力

これは、次のように NM_CUSTOMDRAW メッセージを処理することによって実現されます。