mcrblog

vcpp-ml

1999年06月

30

[vcpp 00030207] Re:キャプションのサイズ

Akitoshi Shiomi <a...@sra.co.jp> さん、こんにちは。宇佐美史郎 です。

        Wed, 30 Jun 1999 10:44:59 +0900 の
        [vcpp 00030178] Re: キャプションのサイズ
        に関するメールにお答えします。

Akitoshi> こんにちは、塩見@SRAです。
Akitoshi> 
Akitoshi> ★6/29 22:46 の 宇佐美史郎<s...@micnet.ne.jp> さんのメールに曰く、
Akitoshi> 
Akitoshi> >CFormViewに貼り付けたスタティックテキストのキャプション文字の
Akitoshi> >サイズを任意に変更したいのですがどうしたら良いのでしょうか?
Akitoshi> >誰かおしえてください
Akitoshi> 
Akitoshi>  CWnd::SetFont()
Akitoshi> 
Akitoshi>  という答えでいいのかな?
Akitoshi> 

CFormViewに貼り付けたスタティックテキストが複数あってそれぞれサイズを変えたい
ときにもSetFont()は使えるのでしょうか?
使えるとしたら、どのように変更したいスタティックテキストを指定するのでしょうか?何分、VC++を始めたばかりでご迷惑おかけします

------------------------------------------------------------
Email   s...@micnet.ne.jp
30

[vcpp 00030206] Logoff時のダイアログ

はじめて投稿させていただきます。
佐川と申します。

Logoff時にサービス側からDLLを呼び出し、
ダイアログを出力させる必要があるのですが
出せずにいます。

欲を言うと、出力したダイアログは、
Logoff、Logonの切り替えがあっても継続して出しておきたいのですが、
そのような事は出来るのでしょうか。


どなたかアドバイスお願い致します。
30

[vcpp 00030205] Re: プログレスコントロールの変更

日峰です。

> 本などではViewクラスはデータをウィンドウに表示
> Docクラスではデータの管理と書いてあったりします。
> そういう本を見ていると、DocクラスからViewのメンバにアクセスするのは
> 普通の事であるように思えます。(プログレスコントロールの変更もDocの
> 方がふさわしいように思えるんですが)本当はどのようにするのが理想的
> なんでしょうか?

プログレスコントロールは表示なのでDocはふさわしくないです。

Docオブジェクトはデータに変更があったときUpdateAllViewsで、
このDocオブジェクトに関係する各Viewオブジェクトへ変化があったから
表示しなおせという依頼をします。
そしてUpdateAllViewsが呼ばれたビューがDocオブジェクトの内容を見て
プログレスコントロールの表示を更新します。
DocオブジェクトはViewオブジェクトがデータをどのように表示するかまったく
関わりません。

以下蛇足で済みません。

ドキュメント/ビュー アーキテクチャをヘルプなどから読んでみて下さい。
ドキュメントがプログレスコントロールの操作を行うと、
このドキュメントビューアーキテクチャの考えが崩れると思います。

たとえば、
    表示方法をプログレスコントロールではなく
    別のカッコイイActiveXコントロールに変えたり
するための改造がViewクラスだけで済むのが
ドキュメントとビューを分離させたそもそもの意味だと思います。

実際は、いろいろと面倒だから必要性がないかぎりしないでしょうね。
私は、現実を考えると強制をしません。

特に、進行状況(?)の表示って通常の処理の流れと違い特殊ですからね。
好い方法は知りません。

P.S.

結局またvcppMLを見ています。

そもそも一つのDocオブジェクトにViewオブジェクトが一つとは限らないし。
ViewオブジェクトからはDocオブジェクトが一つに対応します。
だから、DocオブジェクトからViewオブジェクトを調べにくいようです。

その本が何か知りませんが、(難しいから)
  ドキュメントビューアーキテクチャを完璧に実装し活用し、
  初心者を相手に最初から完全な説明をしている本は
すくないと思います。
30

[vcpp 00030204] Re: [vcpp 00030202] UpdateAllViewsについて

Kuro!! と申します。

> こんにちは斎藤です。
こんにちは 

> MFCを使用して、プログラムを作成しているのですが、
> Docクラスのメンバ関数において、
> View(FormView)の内容を更新する際にUpdateAllViews(NULL)を
> 使用したんですが、更新
> できません、そのため面倒なんですが、
> 全てのエディットボックスを一つづつ更新してい
> るやり方をとっています。
> UpdateAllViewsを使用する際に制約事項等あるんでしょうか?
> 何かわかる方がいたら教えてください。
> (VC++6.0 windows98)

私が考えられる可能性は
1.CMyView::OnUpdateにバグがあるもしくは実装されていない
2.DocTemplateにおいてドキュメントとViewが結びついていない

ちなみにUpdateAllViewsは 実行すれば
自動的にViewが更新されるものではなく、
更新通知がDocTemplateに登録されているViewに対して
OnUpdateを通して通知されるしくみです。 ;-)
#ご存知でしたらスイマセン

ですから結局 EditBox関連の面倒な処理を
UpdateAllViews(NULL)を呼んでる付近で実装するか
OnUpdate内で実装するかの違いにしかなりません. . .

ですから1Documentに対して1Viewに限定される場合は
あまり意味がないです。

OnUpdateが呼ばれているかどうか
呼ばれているならなぜうごかないか などは
UpdateAllViewsをトレースすればおそらく原因がつかめると思います。
--
Kuro!!
30

[vcpp 00030203] Re: りストビュー で複数選択につ いて質問

やまだと申します。

#見当違いだったらごめんなさい、、、、

もしかしたら、2回目のクリックがダブルクリック(OnLButtonDblClk())
で処理されているということはないでしょうか?

At 0:26 AM +0900 99.6.30, shinya okamura wrote:
>    項目1
>    項目2
>    項目3  <- 選択状態
>    項目4  <- 選択状態
>    項目5  <- 選択状態
>
>   2,もう一度3行目を選択すると以下のように変わる
>    項目1
>    項目2
>    項目3  <- 選択状態
>    項目4  <-  選択状態が解除されてしまう
>    項目5  <-  選択状態が解除されてしまう
>
>    質問内容は
>     項目4と項目5が選択解除されてしまうが
>     どうしたらよいかということです。
記事検索
Amazon.co.jp
  • ライブドアブログ