掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
エディットボックスとモーダルダイアログを連携させるには (ID:62259)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
レスありがとうございます 返信が遅くなりすいません。いろいろ試したりしてしてました。 あと、こちらのスレの質問が自分の聞きたかったこととかなり重複してたので 質問の内容に驚きつつ参考にさせていただきました 【参考】 ループ中にEDITBOXの内容を逐一変更するためには http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200606/06060044.txt 自分の質問の下手さを痛感しました。やりたかった事はこういう事だったわけです。 1の件についてはKさんの言う通りOnInitialDialog()でちゃんといけました ありがとうございます。初歩的ですいません 2の件についてなんですが、文章が分かりにくくて申し訳ありませんでした もともとやりたい事は ・エディットボックスコントロールに一行ずつゆっくりとテキストを表示させたい という事だったのです 参考までに具体的なコード(というか、クラスの関係)を抜粋して書いみます。 エディットボックスを持ってるのは今回はダイアログバーで クラスを仮にCHukidashiDialogBar とします そのクラスのメンバにエディットボックスに CStringを入れるだけのメンバ関数 BOOL CHukidashiDialogBar::SetHukidashi(CString comment) { GetDlgItem(IDC_EDIT_HUKIDASHI)->SetWindowsText(comment) } を置いていますこの関数の中身は基本的にこの一行 だけです (今この関数の中に、DoModal()を置くと、一行ずつ表示させる事はうまくいくのですが いちいち、ダイアログがアプリケーションのモーダルになってしまうので、 やはり気持ち悪さがかなり残ってしまいます)、 このダイアログバークラスにはいろいろなところからアクセスさせるものとしてます。 そしてその(アクセスする側の)一つに、完全に別のインスタンスの クラスのある関数の中で { // m_pHukidashiDialogBar->SetComment("それでは開始します。よろしいですか?); //〜〜ここからコードA //実時間のかかり、ユーザー入力待ちなどもある処理コード m_pHukidashiDialogBar->SetComment("●●終了しました。○○も行いますか?"); //ここからコードB //実時間のかかり、ユーザー入力待ちなどもある処理コード // m_pHukidashiDialogBar->SetComment("全て終了しました。他にも行いますか?"); } のように、一つの関数の中にいろいろ内容を変えて、SetComment(comment)を呼び出して も、実際に動かしてみると一番最後の「全て終了しました。他にも行いますか」がずっと表示された 状態のまま(に見えるの)です。 この件については、前述の別スレの方の質問を参考に「UpdateWindow()を呼ぶ」ことで、 (一瞬で全て流れてしまいますが)、表示自体は出来るようになりました そこであとは、これを読みやすいタイミングに制御することのみが問題となりました。 もともと、「エディットボックスに表示させるメッセージを一定時間おきにゆっくり 表示させる」という仕様として考えていろいろ思いつく方法を試したのですが Sleep()のような簡単な方法では問題があり分かりませんでした。 ただ、いざ雰囲気を実現させてみると、勝手に「ゆっくり」と実時間待機させるよりは ダイアログをモーダルにして、キーボードを連打すれば、 「とばしたい時はガンガンメッセージを進む」ことが出来る仕様の方が 何かと使い安いということが分かったので 前述のモーダルダイアログの方法でいきたいと思います エディットボックスを流れるメッセージの実時間的タイミングを制御する方法については 研究課題として宿題にしたいと思います KING・王 さん PATIOさん 分かりにくい質問に貴重なレスを本当にありがとうございました とても参考になり勉強になりました。精進したいと思います
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.