ファイル表示、ダイアログの値 – プログラミング – Home

ファイル表示、ダイアログの値
 
通知
すべてクリア

[解決済] ファイル表示、ダイアログの値


フーミン
 フーミン
(@フーミン)
ゲスト
結合: 23年前
投稿: 7
Topic starter  

フーミン、男です。
MFCを始めて1週間、WinAPIの経験もなく初心者です。
よろしくお願いします。

・[ファイル]-[開く]でファイルを開きたいのですが、
 ファイルを選んだだけでは表示されません。
 仕方がないので、
  OnLButtonDown→OnInitialUpdate
 と苦肉の策を使っています。

・ダイアログでチェックボックス、ラジオボタン等々を
 使っているのですが、ダイアログを呼ぶたびに
 変更した値を保持して呼びたいのですが、
 デフォルト値に戻って呼ばれてしまいます。
 呼ぶたびにコンストラクタで初期化されているとは
 思うのですが対策がわかりません。

初歩的な質問ですいません。
心優しき御方お願いします。


引用未解決
トピックタグ
tib
 tib
(@tib)
ゲスト
結合: 23年前
投稿: 468
 

[ファイルを開く]
結局何をなさりたくて、現在どのようにプログラミングしていて、
どのような結果になっているのかが見えてこないのでコメントしづらいですが、
CFileDialogを使っているのでしょうか。これは画面上に「開く」と表示されますが
実際は開くファイルを選択するだけなので、そのファイルを開いて、メモリ上に展開して、
何らかの形で表示する、という部分を別途実装する必要があります。

[ダイアログの値保持]
コンストラクタで初期化されているのなら、Dialogの値をどこかに保存しておいて
CDialog::OnInitDialog()などで表示すべき値を取得・設定するといいでしょう。

コンストラクタをオーバーライドする、という方法もありますね。デフォルトコンストラクタ
とは別にDialogの値を引数で与えられるようなコンストラクタも用意すると使い分けができて
何かと便利でしょう。


返信引用
フーミン
 フーミン
(@フーミン)
ゲスト
結合: 23年前
投稿: 7
Topic starter  

こんばんわ。

tibさん 早速のレスありがとうございます。

おかげさまで、ダイアログの方は解決しました。

ファイルの方は説明が足らなかったみたいですね、すいません。

今作っているプログラムというのは、
AppWizardで自動生成(SDI)されるものをもとに、
メニューバーで[ファイル]→[開く]でファイルを選択し、
OnFileOpen()でファイルからデータを読み込み、
OnDrawで描画という、とても一般的なものだと思います。

OnDraw()の中でOnInitialUpdate()を書くと、
常に再描画されてしまい、OnFileOpen()にフラグを立てて、
その値を見てOnInitialUpdate()をかけると描画されません。
(デバッグモードで見るとできてる感じなのですが)

どなたかお願いします。


返信引用
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

OnFileOpen()の中でOnInitialUpdate()をコールではだめですか。


返信引用
フーミン
 フーミン
(@フーミン)
ゲスト
結合: 23年前
投稿: 7
Topic starter  

アイススケーターさん レスありがとうございます。

OnFileOpen()の中だと、OnDraw()の前なので
だめだと思い込んでました。

家にはプログラムを持ってきていないので、
明日、早速試したいと思います。


返信引用
フーミン
 フーミン
(@フーミン)
ゲスト
結合: 23年前
投稿: 7
Topic starter  

こんばんわ

OnFileOpen()の中でUpdateAllViews()を
呼ぶことで解決できました。

レスをくれた方々ありがとうございました。
またお願いします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました