
リストビューを使ったプログラムで、以下の2点についてどうしていいか分からないので、どなたか助言をお願いします。
(1)可視領域を23行としたリストビューで、起動時はスクロールを水平・垂直ともに抑止しておきます。ボタンをクリックする度に1行ずつ0行に挿入し、データが24行以上で垂直スクロールを許可してるのですが、挿入した行に+1行が表示されてしまいます。GetItemCount()で調べてもやはり1行多く表示されてます。カスタムドローで交互に背景色を変えていますが、その行に背景色はありません。水平スクロールを抑止している事が原因でしょうか?スクロールの抑止は、以下を参考にさせて貰ってます。
http://homepage3.nifty.com/mitui707/VisualC/VCli …
(2)ヘッダ部の表示はセンタリング、アイテムは左寄せにしたいのですが、アイテムの左寄せをどのようにすれば良いのか分かりません。
ヘッダ部の設定
LVCOLUMN myColumn;
myColumn.mask = LVCF_TEXT | LVCF_WIDTH | LVCF_FMT;
myColumn.fmt = LVCFMT_CENTER;
どなたか助言をお願いします。
No.2ベストアンサー
- 回答日時:
※注意:以下は『.NET』での事例です。
その他の環境下ではかえって実装が面倒かもしれません。
(2) に関して、以前に同じような状況に出くわしたことがあります。
その時は以下のように、二つのリストビューを用いてそれらしいものに仕上げました。
もし可能であれば参考になさって下さい。
スプリットコンテナを上下に分割し、それぞれにリストビュー(Details)を配置、
コンテナに合うようにドッキング。
下のリストビューのヘッダを消去(HeaderStyle を None)。
スプリットコンテナの境界線をできるだけ上に引き上げて、
上のリストビューのヘッダだけが可視の状態にする。
また、境界線を細くして固定、固定パネルを1に設定。
各列を移動したり、ユーザーが幅を変えることはなかったので、
上のリストビューの Enabled を False に。つまりヘッダは表示のみ。
後は上下のリストビューのカラムの設定を個別に変えれば、
ヘッダとアイテムで異なるテキストアラインの調整が可能に。
ただし、ヘッダ部分をユーザが操作する場合や、列数が途中で変更される場合、
水平スクロールがあるような場合だとそれらを吸収する処置が必要になります。
助言、ありがとうございます。m(_ _)m
確かにこの方法も有りですね!VC++はまだ始めたばかりですが、CとVBはそれなりにやって来ているので、この方法に気付くべきでした。(仕事の都合上、1年ほどプログラムから離れていたせいかも...。)
今回はリストビューにデータを表示するだけですので、この方法を試して見ます。
が、今後は列幅を変更したりする事があると思われるので、他の方法も考える必要はあると思います。
No.1
- 回答日時:
もう解決しているかもしれませんが、開発環境は何ですか。
また、MFCですか。
(1)
「1行多く」とは、空欄が入ってしまうのですか。
その1行は、どこに入りますか。
また、スクロールの抑止をやめた時(TRUEではなく、全部コメントアウトした時)、余分な行は入りますか。
(2)
時々、あちこちの相談サイトで同じ質問を見かけますが、正しいコードを見たことはありません。
自信ありげに「オーナードロー」と書いて、コードも構造体も提示しないようなのばかりです。
気になって調べてみましたが、私も結局わかりませんでした。
存知よりのへテランは、ひとこと、「できない」ですと。。。
どうしてもやるのなら、列幅をピクセル単位で取得することはできますから、ヘッダ文字列の先頭に空白文字を適当数足せば、センタリングらしく見せることはできます。
この回答への補足
回答、ありがとうございます。
まだ解決してませんです...。
(1)
>「1行多く」とは、空欄が入ってしまうのですか。
>その1行は、どこに入りますか。
そうです。24行目のデータを挿入した時、垂直スクロールを許可しているのですが、同時に25行目に空欄が入ってしまいます。
>また、スクロールの抑止をやめた時(TRUEではなく、全部コメントアウトした時)、余分な行は入りますか。
23行目のデータを挿入した時、水平・垂直両方のスクロールバーが表示され(23行目の上に水平スクロールバーが表示されている)、余分な行は入りませんでした。
(2)
サンプルを入手したのですが、VC++を始めて1ヶ月に満たない私には、難しすぎて...。後輩の話では、CHeaderCtrlを取得して、ヘッダーのみオーナー描画すればと助言をくれたのですが、まだうまく動作出来てません。
最後は、turukame2005さんの言われる空白文字を足すという案を考えて見ます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- 会計ソフト・業務用ソフト Excelの二画面表示でマウスホバーするだけでスクロール 1 2023/02/27 11:00
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- レトロゲーム ファミコンのインベーダー。なぜ左右に動けるのか? 1 2022/07/05 14:19
- iCloud バックアップが完了したあと、機種変更前のスマホ、リセットしていい?? 1 2023/02/07 14:44
- Excel(エクセル) この記号、手短(テミジカ)に日本語/英語で何と称されますか? 1 2022/07/25 16:12
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- iPhone(アイフォーン) お礼の仕方がわかりません!! iPhoneを使っているのですが、PC表示のやり方もよくわかりません。 2 2023/02/05 16:11
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
リストビューをスクロールさせ...
-
PDFを(htmlのように)無限に縦...
-
リストボックスをクリックした...
-
JQueryで画面中央にDIVを配置し...
-
メニューがスクロールと共につ...
-
ページ訪問時にiframe内を自動...
-
webページで横方向にアンカーを...
-
エクセルVBAでフォームのListbo...
-
Excelで1.2行目だけ固定して...
-
グラフ表示の仕方 教えてください
-
水平スクロールができない。
-
文章の自動スクロール
-
Spreadのスクロールについて
-
上下キーを押すと、ページスク...
-
ホームページでスクロースする...
-
MFCでのスクロールバーの扱い
-
大きい表へのスクロールバーの...
-
一体の時間が経過してからCSSの...
-
エクセルのシート上に別のシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
PDFを(htmlのように)無限に縦...
-
エクセルVBAでフォームのListbo...
-
リストビューをスクロールさせ...
-
アコーディオンで開かれたパネ...
-
Visual Basicから Spreadのスク...
-
大きい表へのスクロールバーの...
-
マウスオーバー→ホイール回転で...
-
vb,netでtextboxの文字を右から...
-
ExcelVBAで他のアプリをスクロ...
-
新着情報などをスクロールしな...
-
マウスでコロコロしたいんですが…
-
リストビューのスクロールバー...
-
Excelで一部分だけを常に表示さ...
-
エクセルで行を固定しその下か...
-
マウスホイールでスクロールで...
-
文章の自動スクロール
-
html js 横軸の長いチャート
-
上下キーを押すと、ページスク...
-
C#:ListViewでのスクロールイベ...
おすすめ情報