- 締切済み
MFCで水平スクロールバー
taka_tetsuの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>ドキュメント/ビューアーキテクチャについて復習しました。 >これはウインドウのクライアント領域を操作するクラス(ビュー)と、そこに表示するデータを操作するクラス(ドキュメント)を明確に分ける事を言うようですが、 >この場合はどういう意味で破綻するということを意味しておられるのでしょうか? ドキュメントビューアーキテクチャーでは、各クラスがそれぞれの役割を担当することで、それぞれ他のクラスの状態に影響されること無く処理を記述することが出来ます。 特にこの場合は、ドキュメントは表示範囲の指定(ビュー)に全く影響を受けずに表示内容を出力する処理を記述することが出来ます。 しかし、 >画面を表示する際にスクロールバーの位置を取得して、 >スクロールバーが右側になっていれば画面の右側を >描画(描画開始位置を左にする)という処理にする。 となると、ビューやフレームの状態によって、ドキュメントが影響を受けてしまい、表示範囲を意識した出力を行わなければいけなくなります。 破綻とは、この部分を差します。 >ということはプロジェクトを最初から作り直さないと無理ということになるのでしょうか? CScrollViewはCViewの派生クラスですので、ウィザードによって作成されるコードはほとんどCViewのときと変わりません。 一部、スクロール範囲を指定するメソッドを呼んだりといった処理がウィザードによって追加されますが、たいした量ではありません。 一旦、ウィザードで 1.今までの設定(おそらくCView)でウィザードで新しいプロジェクトを作成する。(作成中のプロジェクトと同名で) 2.CScrollViewの設定で、ウィザードで新しいプロジェクトをもうひとつ作成する。 3.1と2で生成されたViewのソースの違いをチェックし、それを作成中のプロジェクトに反映する。 といった感じで平気です。
関連するQ&A
- 3つの水平スクロールバーの違いについて知りたいです。
3つの水平スクロールバーの違いについて知りたいです。 僕は、VC++6.0でエディタを作ろうとしているWINAPI初心者です。 ダイアログボックスにリソースエディタで3つスクロールバーを配置しました。 しかし、どうすれば、それぞれのスクロールバーが動いたか知ることが出来ませんでした。 ネットで検索しても出てこないので、ここで質問させて貰いました。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 水平スクロールから垂直スクロールへ変えたい
いつもお世話になっております。 会社の同僚から質問があり、解決方法が分からなかったので、質問させて頂きます。 エクセルデータが100件ほど入ったフォルダがあるのですが、 それを開くとスクロールバーが水平方向のものしか表示されないそうです。 これでも特に問題は無いのですが、 使いづらいので垂直スクロールバーに変更したいとのことです。 ちなみに、試しで同様のフォルダを新規で作成したところ、 やはり水平スクロールバーが表示されるそうです。 又、こちらで類似の質問を発見し「アイコンの自動整列」にチェックを入れるという解決方法を試してみようとしたのですが、 なぜかその項目がグレーになっており、選択できませんでした。 長くなりましたが、この水平スクロールバーを垂直スクロールバー表示へ変更する方法はありますか? 宜しくお願い致します。
- ベストアンサー
- Windows XP
- chromeで水平スクロールバーでない
水平スクロールバーが出ない。 chromeとMSEdgeでは出ない。 PPやエクスプローラーでは出ない。 wordやEXCELでは出る。 ※OKWAVEより補足:「NEC 121ware :ソフトウェア」についての質問です
- ベストアンサー
- その他(ソフトウェア)
- 水平スクロールバーの復元
Excel2003を使用しています。 突然、Excel画面から、シート見出しや水平スクロールがあるバーが消えてしまいました。 復元するには、どうすれば良いのか教えてください。 よろしくお願いします。
- ベストアンサー
- Windows XP
- 水平スクロールができない。
hLB=CreateWindow ("LISTBOX",NULL,WS_CHILD|WS_VISIBLE|WS_VSCROLL|WS_HSCROLL|LBS_MULTIPLESEL,0,0,400,400,hW,NULL,hI,NULL); SendMessage(hLB,LB_SETHORIZONTALEXTENT,256,0); i=(int)SendMessage(hLB,LB_GETHORIZONTALEXTENT ,0,0); TextOut(hD,300,0,s,strlen(itoa(i,s,10))); (ただしchar s[99];と宣言されている) として200文字の文字列を200個リストボックスに格納すると 垂直スクロールバーはできるのですが水平スクロールバーができず水平方向にオーバーフローした文字を見るためのスクロールもできません。 しかしTextOutの結果は256になります。 どうすれば水平スクロールバーを出すことができ水平スクロールできるようになるのでしょうか。
- ベストアンサー
- C・C++・C#
- エクセルの水平スクロールバーが変??
エクセル2003です。 使用中に突然水平スクロールバーのスライダーが 効かなくなりました。 (セル上を → ← キーを使えば水平スクロールできる) 症状 1)スクロールバーの左右の両端の< >マークが消えています。 2)スライダーは見えますが、マウスで動かせません。(反応しない) (なお、垂直スクロールは問題なく使用できます) 富士通ノート FMV-NB55K Win XPHome Sp2
- ベストアンサー
- オフィス系ソフト
- VBA:水平スクロールバーが要らない!
XP&Excel2000でVBAを組んでいるビギナーです。 その中でリストボックスを入れたいのですが、例えば、 4文字程度のテキストしかリストになく、 リストボックスの幅は十分それ以上のスペースがあるのに、 走らせてみると水平スクロールバーが表示されており、 additemで“テキスト”と追加したはずのデータが、まるで“ テキスト ”と前後に余計なスペースが混じっているような感じになってしまいます。 これは一体何が原因でしょうか? また、リストボックスにはスクロールバーに関するプロパティが見当たりませんが、そもそもスクロールバーを直接設定することはできないのでしょうか? よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- excel:水平スクロールの表示
office2000を使用 いつもでていた水平スクロールバーが見えなくなりました。 ツール/オプションの表示 水平スクロールバーはチェックされておりますが。 何かに隠れているだけなのでしょうか。回答をよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
回答ありがとうございます.お礼遅くなり,申し訳ありません. >>一旦、ウィザードで 1.今までの設定(おそらくCView)でウィザードで新しいプロジェクトを作成する。(作成中のプロジェクトと同名で) 2.CScrollViewの設定で、ウィザードで新しいプロジェクトをもうひとつ作成する。 3.1と2で生成されたViewのソースの違いをチェックし、それを作成中のプロジェクトに反映する。<< それを見比べた所 CView→CScrollViewに置き換えて void CMyView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); CSize sizeTotal; // TODO: このビューのサイズの合計を計算します。 sizeTotal.cx = sizeTotal.cy = 100; SetScrollSizes(MM_TEXT, sizeTotal); } を追加したのですが,エラーになってできませんでした.どこがいけないでしょうか?