eMbedded Visual C++ 4.0 、MFC 、ダイアログベースでプログラミングをしています。
リストビューのスクロールバーを非表示にしてCListCtrl::Scrollを使い別のプログラムからスクロールさせたく、
「EnableScrollBarCtrl」や「ShowScrollBar」を使ってみたりしましたが非表示にできません。
リストビューのプロパティで「スクロールさせない」にチェックすると、CListCtrl::Scrollによるスクロールができなくなってしまいます。
非表示でCListCtrl::Scrollでスクロールできる方法をご存知でしたら教えてください。
なぜ別のプログラムでスクロールさせたいのかといいますと複数のリストビューを連動させてスクロールさせたいためです。
eMbedded Visual C++ 4.0はVC++6.0と似ているようですのでそのあたりに詳しい方アドバイスをください。
No.1ベストアンサー
- 回答日時:
こんにちは。
実験してみた所、実現できましたのでご報告いたします。・VC++6.0, MFC, にて行いました。
・リストビューのスクロールをしないにチェックします(消したいようですので)
・単独のスクロールバー(IDC_SCROLLBAR1)をダイアログに貼り付けて、リストビューをスクロールさせています。
以下参考程度に。
void CKaiketuDlg::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
//テスト用のスクロールバーに対して何かされた
if(::GetDlgCtrlID(pScrollBar->GetSafeHwnd()) == IDC_SCROLLBAR1)
{
//縦の移動量を示す変数
int vScroll = 0;
//何の操作か
switch(nSBCode)
{
//下方向関係が押された
case SB_LINEDOWN:
case SB_PAGEDOWN:vScroll = -10; break;
//上方向関係が押された
case SB_LINEUP:
case SB_PAGEUP:vScroll = 10;
}
//リストビューのクライアント領域をスクロールさせる
::ScrollWindowEx(m_listCtrl.GetSafeHwnd(), 0, vScroll, 0, 0, 0, 0, SW_SCROLLCHILDREN | SW_INVALIDATE);
//リストビュー内の全てのアイテムをスクロールさせる
for(int i = 0; i < m_listCtrl.GetItemCount(); ++i)
{
POINT ptPos = {0};
//アイテムの位置を取る
m_listCtrl.GetItemPosition(i, &ptPos);
//縦方向に向かって移動量を加算する
ptPos.y += vScroll;
//アイテム位置を設定する
m_listCtrl.SetItemPosition(i, ptPos);
}
}
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}
No.2
- 回答日時:
こんにちは。
訂正です。
ScrollWindowEx()は必要ありませんでした。
アイテム位置を変更するだけでスクロール出来ます。
ありがとうございます。御礼が遅くなりすみません。
試したところ、うまくいきませんでした。
どううまくいかなかったかは・・・すみません忘れました。
スクロールバーが表示されてしまったような気がします。
プロパティの「スクロールさせない」はアイテムがすべて収まるのが前提なのかもしれません。
また、リストビューのアイテムには高さ調整用のイメージを貼り付けているのでそれが関係していたかもしれません。
とりあえず「スクロールさせない」はチェックせず、表示されてしまうスクロールバーの部分は他のコントロールで隠すことで一応の解決を見ました。
ほかにいい方法があれば教えていただけるとたすかります。
テストできるかは分かりませんが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- Chrome(クローム) Chrome 非表示のブックマーク 多量 下にスクロールするのに時間かかる 良い方法は 1 2023/01/16 23:34
- iPhone(アイフォーン) お礼の仕方がわかりません!! iPhoneを使っているのですが、PC表示のやり方もよくわかりません。 2 2023/02/05 16:11
- Visual Basic(VBA) 【Excel VBA】条件に合った行の表示・非表示を行う方法 3 2023/03/18 12:31
- 会計ソフト・業務用ソフト Excelの二画面表示でマウスホバーするだけでスクロール 1 2023/02/27 11:00
- iPhone(アイフォーン) 同じ写真と動画をiOSが検出する便利な機能 写真のアルバムタブにて、画面を一番下までスクロールすると 3 2023/01/23 15:41
- Chrome(クローム) Chromeの描画領域を2分割して異なるスクロール位置を同時に表示させることはできますか 1 2023/03/01 16:53
- その他(インターネット接続・インフラ) 電話番号についてわかる方 1 2022/05/30 20:59
- その他(gooサービス) 「補足」欄を「細く」することはできますか 3 2022/10/22 10:32
このQ&Aを見た人はこんなQ&Aも見ています
-
とっておきの「夜食」教えて下さい
真夜中に小腹がすいたときにこっそり作るメニュー、こっそり家を抜け出して食べに行くお店… 人には言えない、けど自慢したい、そんなあなたの「とっておきの夜食」を教えて下さい。
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
忘れられない激○○料理
これまでに食べたもののなかで、もっとも「激○○」だった料理を教えて下さい。 激辛、でも激甘でも。 激ウマ、でも激マズでも。
-
おすすめのモーニング・朝食メニューを教えて!
コメダ珈琲店のモーニング ロイヤルホストのモーニング 牛丼チェーン店の朝食などなど、おいしいモーニング・朝食メニューがたくさんありますよね。
-
好きな和訳タイトルを教えてください
洋書・洋画の素敵な和訳タイトルをたくさん知りたいです!【例】 『Wuthering Heights』→『嵐が丘』
-
MFCのCListCtrlでスクロールを検出
C言語・C++・C#
-
画面を強制的に再描画させる方法
C言語・C++・C#
-
ダイアログ内コントロールの位置取得について
C言語・C++・C#
-
-
4
VC++でコントロールの境界線を描画する方法
C言語・C++・C#
-
5
CStringのFindで文字列検索を行いたいのですが
C言語・C++・C#
-
6
リストコントロールの列幅を固定にする
C言語・C++・C#
-
7
ダイアログをスクロールさせるには
C言語・C++・C#
-
8
CListCtrlで行の高さを指定したい。
C言語・C++・C#
-
9
コンボボックスの高さを変更したい。
C言語・C++・C#
-
10
リストコントロールのスクロールバーを操作無効にするには
C言語・C++・C#
-
11
リストビューをスクロールさせるには
Visual Basic(VBA)
-
12
CWnd::EnableWindow()の扱い方
C言語・C++・C#
-
13
リソースエディタでスタティックテキストの文字サイズの変更
C言語・C++・C#
-
14
ボタンの表示の色、フォントを変更したい
C言語・C++・C#
-
15
リストビューで選択行の背景を変える
C言語・C++・C#
-
16
ダイアログクラスのコントロールを別クラスで参照するには?
C言語・C++・C#
-
17
CListCtrl の特定のセル(アイテム?)の文字だけ中央で表示したい
C言語・C++・C#
-
18
CString から LPCTSTRの型に変換
C言語・C++・C#
-
19
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
20
テキストボックスからフォーカス外す
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
リストビューをスクロールさせ...
-
PDFを(htmlのように)無限に縦...
-
画像のようにとあるサイトの横...
-
Visual Basicから Spreadのスク...
-
エクセルVBAでフォームのListbo...
-
リストビューのスクロールバー...
-
ポストバック時のスクロール位...
-
MFCでのスクロールバーの扱い
-
階層フレキシブル グリッド コ...
-
新着情報などをスクロールしな...
-
vb,netでtextboxの文字を右から...
-
スクロールするとメニューも一...
-
JTableの行ヘッダーを非表示に...
-
マウスオーバー→ホイール回転で...
-
スクロールで続きが読み込まれ...
-
大きい表へのスクロールバーの...
-
マウスでコロコロしたいんですが…
-
リストビューの水平スクロール...
-
アコーディオンで開かれたパネ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
エクセルVBAでフォームのListbo...
-
PDFを(htmlのように)無限に縦...
-
リストビューをスクロールさせ...
-
大きい表へのスクロールバーの...
-
画像のようにとあるサイトの横...
-
アコーディオンで開かれたパネ...
-
Visual Basicから Spreadのスク...
-
vb,netでtextboxの文字を右から...
-
webページで横方向にアンカーを...
-
ページ訪問時にiframe内を自動...
-
VBE画面の縦のスクロールバ...
-
常に画像の大きさを横幅100%で...
-
html js 横軸の長いチャート
-
グループボックス内のコンボボ...
-
文章の自動スクロール
-
Webサイト内でスクロールする小...
-
Spreadのスクロールについて
-
ExcelVBAで他のアプリをスクロ...
-
上下キーを押すと、ページスク...
おすすめ情報