いつもお世話になっております。
WindowsXPのvc++6.0のMFCでダイアログベースのアプリを作成しています。
リストボックスを貼り付けているのですが、現在の設定では
アプリ起動時には四角い枠だけがある状態です。
起動時にはリストボックスの項目毎に枠線をつけたいのですが、
何かいい方法がありますでしょうか?
よろしくお願いします。
◆現在の起動時(枠線がない)
┌───────────┐
│Title │
├───────────┤
│ ↓ListBox │
│┌────────┐ │
││1. │ │
││2. │ │
││3. │ │
│└────────┘ │
└───────────┘
◆理想の起動時(ListBoxの項目毎に枠線がある)
┌───────────┐
│Title │
├───────────┤
│ ↓ListBox │
│┌────────┐ │
││1. │ │
│├────────┤ │
││2. │ │
│├────────┤ │
││3. │ │
│└────────┘ │
└───────────┘
LBS_OWNERDRAWFIXEDを指定して、オーナードローするしかないと思います。
又は、リストボックスをやめて、リストコントロールにする方法も
考えられますね。
VC6ならMSFlexGrid使った方が楽かも。
> 又は、リストボックスをやめて、リストコントロールにする方法も
そうそう、
LVS_EX_GRIDLINES ですね。
既に実現方法に関しては書込みがあるのでそれは置いておいて。
WindowsでGUIを実現する場合にWindowsが提供している既定のUIと言うのがあります。
今回のリストボックスに関して言うなら他の一般的なアプリケーションでも
枠は出ていないのが普通の状態だと思います。
確かに見た目の話なのでこうしたいという話もわかりますが、
既定のUIを使う事で慣れたUIを使う事になり、使用する側が使い方を理解しやすくなる
と言うメリットもあると思いますよ。
既定の動きや表示のコントロールを組み合わせても使いやすいUIは実現可能だと思います。
独自のUIと言うのは目新しいですし、インパクトもありますけれど使いやすいかどうかは
話が別だと思います。
UIのカスタマイズに関しては苦労して実装した割には報われないとか、
メンテナンス上の面倒が増える可能性があるとか、
そういう面も含んでいるので機能上の必然でどうしてもと言う場合は仕方ないと思いますが、
単純に見た目を変えたいだけの話なら再考してみるのもありかなと思います。
技術的な興味から方法を知りたいと言う話なら色々調べてみるのはありだと思いますけれど。