ダイアログ画面のボタンを押すと、他のダイアログ画面に遷移させたいのですが?

[戻る]
天草 銀 [E-Mail] 2002/06/24(月) 17:20:16
ダイアログ画面のボタンを押すと、次の画面に画面遷移させるにはどうしたらよいでしょうか?
教えてください。

PAI 2002/06/24(月) 17:23:58
環境がまったくわかりません。

一応、ボタンが押されたらそのダイアログの親にそれを通知してやって、
親のほうでどうとでもすればいいような気はしますが。

天草 銀 [E-Mail] 2002/06/24(月) 17:49:07
すみません。
『新C++入門』と『新Visual C++ 6.0入門』を読んだだけのそうとうな初心者です。

環境と申しますと?

ボタンが押されたらそのダイアログの親にそれを通知してやるとは?どのように?

私が今やりたい事は、ダイアログの画面にボタンが1個だけあって、それを押すと何も表示して
いないダイアログの画面を表示する。というだけのものを作りだいのですが、どの関数にどんな
処理を加えてやればいいのか?

PAI 2002/06/24(月) 18:02:38
ごめんなさい、まず、使用上の注意を読んでください。

で、いま、ダイアログは表示されている?
としたら、そのダイアログはどうやって出しました?


あなたの質問は現在地をいわないで道を(電話で)尋ねてるのと同じような状況です。
できれば答えてあげたいので現在の状況をがんばって説明してみてください。

あと、直接関係なくてもいいからほかの書き込みも見てみるのもいいですよ。
だいたいの場の雰囲気とかも実は重要ですから。

駄犬 [E-Mail] 2002/06/24(月) 18:03:26
>環境と申しますと?

ヒント:
発言される前に「使用上の注意」を必ずお読み下さい。

wood 2002/06/25(火) 08:06:40
聞かれている意味わからない様なので
OSは何を使っていますか
 WINDOWS95/98/ME/2000/XP
 LINUX/FREEBSD
コンパイラは何を使っていますか
 VISUAL C++ 1.0/1.5/2.0/4.0/4.1/5.0/6.0
 GCC++
 Cビルダー
あなたの作成しているプログラムでは「MFC」使っていますか

こんなこと使用上の注意に書いてあると思いますけど
           

天草 銀 [E-Mail] 2002/06/25(火) 09:10:18
すみません。
遅くなりました。
OSはWindows2000です。
コンパイラはVISUAL C++ 6.0です。
新規作成する際にMFC AppWizard(exe)を選んでいます。

PAI 2002/06/25(火) 11:28:50
で、ダイアログベースですか?
SDIまたはMDIですか?

そのダイアログはどうやって出したもので、ボタンはどのようになってますか?

天草 銀 [E-Mail] 2002/06/25(火) 13:12:49
現在はSDIで作成しています。
新規作成→MFC AppWizard(exe)→プロジェクト名(aaa)→OK→SDI選択→6/6までデフォルト
のままで6/6まできたら、基本クラスをCFormViewを選択→終了
そしてダイアログ画面が出るので、そこにボタンを一つ置く
そのボタンをClassWizardでメッセージをBN_CLICKEDを選択して、関数の追加して終わっている状
態です。
関数にはまだ何も処理を書いていません。

ヒー 2002/06/25(火) 13:20:02
GetDialogItemというのでそのダイアログのIDを取得して、
それを引数などを使って
送ることで遷移は可能じゃないでしょうか??
今は自分のがちょっと忙しくて
あんまり質問を読んでいないので・・・。

[E-Mail] 2002/06/25(火) 15:21:47
とりあえず現状は大体わかったような気はしますが、質問内容にある「次の画面」とは
具体的にはどのようなものを示していますか?
それがわからないと、回答は出ないと思います。

天草 銀 [E-Mail] 2002/06/25(火) 15:59:32
作りたいものはですね、ちょっと具体的に言いますと、
ボタンを何個か配置したメニュー画面を作ります。
ボタンを押すと画面遷移して、その画面でデータベースを操作できる。
というようなものを作りたいのです。
ただ最初の段階として、画面にボタン1つを置き、それを押すと画面遷移させる。
ということがしたいので、次の画面は何も表示しないダイアログ画面でかまわないのですが。
こんな説明ではご理解いただけないでしょうか?

[E-Mail] 2002/06/25(火) 16:08:22
そうすると、ダイアログを追加する手順がわからないって事なんでしょうか?

VCのメニューから
[挿入]
+-[リソース]
  +-[Dialog]
を選択してください。
多分ダイアログが追加されると思います。

で、ダイアログを制御するためのクラスを作成する必要があるんで
[挿入]
+-[クラスの新規作成]
を行って、基底クラスには CDialog を指定。
ダイアログのIDにはさっきの手順で作成されたダイアログのものを指定してください。

とりあえず、ここまでやったら次にいきましょう。

どうも、この回答で方向性があってるか自信ないんでこれ以上はまた後ということで。

天草 銀 [E-Mail] 2002/06/25(火) 16:16:27
はい。
ダイアログが追加されました。
次はどうしたら良いですか?
最初の画面のボタン押下のタイミングで新しく追加したダイアログ画面への遷移の仕方をお願い
します。

[E-Mail] 2002/06/25(火) 16:42:04
じゃぁですね、BN_CLICKEDを選択して、追加された関数に以下の処理をいれてください。

    CDialog1 dlg1 ;
    dlg1.DoModal() ;

上記の CDialog1 には自分で作成したクラス名を入れてください。

で、新しく *.h と *.cpp が一つずつ出来てると思いますんで

CXXXXView の *.cpp の #include 文が並んでる下に

#include "dialog1.h" 

のように新しいダイアログのヘッダファイルを追加してください。

これで新しく追加したダイアログは表示されるでしょう。

あとは知りません。

駄犬 [E-Mail] 2002/06/25(火) 16:54:54
画面遷移という言葉が仕様として不明瞭です。
画面(ダイアログ)を開く、とは違うのでしょうか。
開くと同時に元のダイアログを閉じるとかなんだとか、開く以外の動作が必要なんでしょうか。

天草 銀 [E-Mail] 2002/06/25(火) 17:02:11
BN_CLICKEDを選択して、追加された関数に

    CDialog dlg1 ;
    dlg1.DoModal() ;

を入れました。

新しく bbb.h と bbb.cpp が一つずつ出来ていました。

aaaView.cpp の #include 文が並んでる下に

#include "dialog.h" 

を入れてビルドするとインクルードファイルが開けません。というエラーが出てしまうのです
が?

[E-Mail] 2002/06/25(火) 17:16:28
私は「新しいダイアログのヘッダファイルを追加してください。」と書いています。
bbb.h が新規に作成されたのなら、 #include "bbb.h" と書いて下さい。

なべ [E-Mail] 2002/06/25(火) 17:21:50
「新しいダイアログを開くと同時に元のダイアログを閉じる」となるとちょっと難しい様です
が、ただ単に「ダイアログを開く」だけなら

「新VisualC++6.0入門〜ビギナー編」林晴比古氏著 SOFTBANK発行の272頁から丁寧に解説し
てありますよ。

¥3、900−と安い本ではありませんが、本当に始めるのならこの本お奨めですよ。

入門書で簡単に見つかる程度の事を質問すると反応が厳しいでしょ?

これって、本の宣伝になっちゃいますか?最近ちょっと質問のレベル落ちてる様なので...。

天草 銀 [E-Mail] 2002/06/25(火) 17:24:05
でました!
ホントにありがとうございましたm(_ _)m
質問だらけでめんどくさいと思いますが、
この後の質問にもどうぞお答えください。
失礼します。

天草 銀 [E-Mail] 2002/06/25(火) 17:31:15
すみません。
もっと勉強してからにしたいのですが、なにぶん課題の納期が近いもので、周りに先生的存在も
いないし、じっくり本を読んでいる時間がないもので・・・
申し訳ないです。

[E-Mail] 2002/06/25(火) 17:54:25
どうも、まだ勘違いしているようなので。

私は「CDialog1 には自分で作成したクラス名を入れてください。」と書いています。

BN_CLICKEDを選択して、追加された関数に

    CDialog dlg1 ;
    ^^^^^^^
と書いては意味がありません。

質問するのは結構ですが、回答内容は良く見てください。

同じ回答を何度もするのは疲れます。

天草 銀 [E-Mail] 2002/06/26(水) 08:54:22
申し訳ないです・・・。
でも  CDialog dlg1; と書いた後、気付いてちゃんと  bbb dlg1;  にしてありますので。
わざわざどうもありがとうございました。m(_ _)m

天草 銀 [E-Mail] 2002/06/26(水) 09:05:43
[[解決]]
みなさんありがとうございました。

古いスレッドには追加発言できません。