No.1ベストアンサー
- 回答日時:
Win32SDKでやるなら ・・・
LVM_GETTOPINDEX, LVM_GETCOUNTPERPAGE, LVM_GETITEMRECT, LVM_GETITEMCOUNT, LVM_SCROLL
を使えば出来そうです
ListViewのハンドルがhLVだとすると
// 先頭の取得
int nTop = SendMessage( hLV, LVM_GETTOPINDEX, 0, 0 );
// 表示可能なアイテム数
int nPage = SendMessage( hLV, LVM_GETCOUNTPERPAGE, 0, 0 );
// ListViewの設定アイテム数
int nItems = SendMessage( hLV, LVM_GETITEMCOUNT, 0, 0 );
RECT rc;
// アイテムの矩形領域
SendMessage( hLV, LVM_GETITEMRECT, 0, (LPARAM)&rc );
int h = rc.bottom - rc.top;
for ( int n = 0; n < nPage; n++ ) {
// ListViewの下方へのスクロール
SendMessage( hLV, LVM_SCROLL, 0, (LPARAM)h );
// 上方へスクロールは -h を与えます
}
といった具合です
♯ スクロールが必要なのかの判断部分はコーディングしてください
回答、ありがとうございます。
早速、一つずつ確認しました。
が、「アイテムの矩形領域」で、rc.topとrc.bottomの値が「-858993460」となっており、hが0でスクロールが確認出来ません。
LVM_GETITEMRECTで検索を掛けてみましたが、ヒントすら掴む事が出来ませんでした。
申し訳ありませんが、再度、助言をお願いします。
No.3
- 回答日時:
プログラミングスタイルも明記した方がいいですね
MFCとかWin32SDKとか
MFCならばコントロールのメンバー関数で出来る場合がありますので
CRect rc;
CListCtrl& lst = m_ListView.GetListCtrl();
lst.GetItemRect( 0, rc, LVIR_LABEL );
といった具合で ・・・
回答、ありがとうございます。お礼が遅くなりました。
>プログラミングスタイルも明記した方がいいですね
>MFCとかWin32SDKとか
次回から明記するようにします。
ありがとうございました。
No.2
- 回答日時:
アイテムの矩形の取得方法が間違ってますね ・・・
rc.left = LVIR_LABEL;
SendMessage( hLV, LVM_GETITEMRECT, (LPARAM)rc);
といった具合です
ラベルの大きさならLVIR_LABEL
アイコンの大きさなら LVIR_ICON
選択サイズなら LVIR_SELECTBOUNDS
をrc.leftに設定して呼び出しましょう
# MSDNなどで確認する癖をつけましょう
この回答への補足
taka077です。
すみません!お礼に記載した内容に間違いがありました!
>但し、ヘッダを含む?サイズのようなので、
>h = h / (nPage + 1);
>で1行の高さを求め、for()で1行分ずつスクロールするようにしました。
int h = rc.bottom - rc.top; で、ちゃんと1行分の高さが取得出来ていました。
いつもありがとうございます。
無事、
RECT rc;
rc.left = LVIR_LABEL;
::SendMessage( m_ListView.m_hWnd, LVM_GETITEMRECT, 0, (LPARAM)&rc );
m_ListView.GetClientRect(&rc);
int h = rc.bottom - rc.top;
でビューの縦サイズを取得出来ました。
但し、ヘッダを含む?サイズのようなので、
h = h / (nPage + 1);
で1行の高さを求め、for()で1行分ずつスクロールするようにしました。
色々調べていたら、以下の方法でもいいのかなというのが見付かりました。
CRect rect;
m_ListView.GetClientRect(&rect);
int h = rect.Height() / (nPage + 1);
>MSDNなどで確認する癖をつけましょう
了解です!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら…
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
リストビューをスクロールさせるには
Visual Basic(VBA)
-
C#:ListViewでのスクロールイベントの取得について
C言語・C++・C#
-
ListView 項目の選択/選択解除について
Visual Basic(VBA)
-
-
4
MFCのCListCtrlでスクロールを検出
C言語・C++・C#
-
5
リストビュー:先頭行のアイテム番号取得
C言語・C++・C#
-
6
リストビューの水平スクロール抑止と文字列の表示位置
C言語・C++・C#
-
7
画面を強制的に再描画させる方法
C言語・C++・C#
-
8
CListCtrlで行の高さを指定したい。
C言語・C++・C#
-
9
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
10
リストコントロールの列幅を固定にする
C言語・C++・C#
-
11
リストビューの選択状態を取得するメッセージはありますか?
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFを(htmlのように)無限に縦...
-
Excelでワードアートや図を常に...
-
MFCでのスクロールバーの扱い
-
文章の自動スクロール
-
グループボックス内のコンボボ...
-
大きい表へのスクロールバーの...
-
エクセルVBAでフォームのListbo...
-
スクロールバーの動作で困って...
-
デジタル時計の時刻合わせの方...
-
マイページはどこを開くの
-
スクリプトって、何ですか?ど...
-
Windows10、フォルダウインドウ...
-
ウインドウを最小化したり、消...
-
Access VBA でForm位置を参照す...
-
ウインドウを毎回同じ位置、大...
-
一定時間おきにアラームやポッ...
-
どうして+3
-
ポップアップウィンドウがブロ...
-
子ウインドウ(別窓)のURL...
-
Wordのスクロールバーが短くなった
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
エクセルVBAでフォームのListbo...
-
PDFを(htmlのように)無限に縦...
-
リストビューをスクロールさせ...
-
大きい表へのスクロールバーの...
-
Visual Basicから Spreadのスク...
-
MFCでのスクロールバーの扱い
-
Excelの質問で票の途中に...
-
vb,netでtextboxの文字を右から...
-
Excelで一部分だけを常に表示さ...
-
Excelで1.2行目だけ固定して...
-
マウスオーバー→ホイール回転で...
-
ページ訪問時にiframe内を自動...
-
VBE画面の縦のスクロールバ...
-
リストビューのスクロールバー...
-
上下キーを押すと、ページスク...
-
webページで横方向にアンカーを...
-
ポストバック時のスクロール位...
-
IFRAMEでscrolling="yes|no"の...
-
アコーディオンで開かれたパネ...
おすすめ情報