親ダイアログから子ダイアログを出すときのCreateWindowの使い方 – プログラミング – Home

親ダイアログから子ダイアログを出すとき...
 
通知
すべてクリア

[解決済] 親ダイアログから子ダイアログを出すときのCreateWindowの使い方


Mr.Boo
 Mr.Boo
(@Mr.Boo)
ゲスト
結合: 19年前
投稿: 15
Topic starter  

開発環境 VC++ Ver6.0 SP6 MFC使用
OS Windows XP HOME だたし最終的にはXP Proで動作します。

初めまして。
現在、上記環境でダイアログベースのアプリ設計を進めています。
ちょうど、VBでいうところのマルチフォームのように、親ダイアログから子ダイアログを
出す必要があります。
“挿入”→“リソース”で新規に子ダイアログを作成し、“挿入”→“フォーム”で
子ダイアログのクラスを作成しました。

親ダイアログのボタンクリックで子ダイアログを出して、そちらに制御を移したいのです
が、子ダイアログの出し方が解りません。
MSDNを調べた結果、CreateWindowを使えばいいようなのですが、具体的な引数をどうする
のかが解らず、悩んでいます。
第9引数のHMENUはキャストして、子ダイアログのIDを渡せばいいようなのですが、第8引
数・第10引数の親ウィンドウのハンドル値とインスタンスハンド値をどのように取得して
CreateWindowに渡せばいいのかが解りません。

どなたかお教えいただけませんでしょうか。
ズバリ回答が一番うれしいのですが、それはあまりに他力本願なので、ヒントだけでも
御願いいたします。

ちなみに、VC++は初心者でVBも含めてWindowsアプリの経験者が会社に一人しかいないた
め、私に担当が回ってきて、今ヒィーヒィー言ってます。


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> 子ダイアログのクラスを作成
があるならば、
CreateメソッドかDoModalメソッドてダイアログを表示できます。

とりあえず適当に検索してみたサイトです。参考にどうぞ。
http://www.ccad.sccs.chukyo-u.ac.jp/manualc/prgrm/dialogbase/app/genDlg/


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> とりあえず適当に検索してみたサイト
これあんまよくないっぽ。

Googleの検索結果のURL載せておくので適当に探して分かりやすいのを選んでください。
「CDialog Create ダイアログ 表示」
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-
8&q=CDialog+Create+%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0+%E8%A1%A8%E7%
A4%BA&num=50


返信引用
Mr.Boo
 Mr.Boo
(@Mr.Boo)
ゲスト
結合: 19年前
投稿: 15
Topic starter  

Blueさん、早速レスをいただき有り難う御座いました。
お教えいただいたサイトの内容を参考に作成したところ、うまくいきました。
わりとあっさりと出来るものなのですね。

但し、CreateWindowの第8引数と第10引数については、今後のことも考えてヒントを頂き
たいので、Blueさんには申し訳ありませんが、もうしばらくの間、解決とはさせていただ
きません。

皆さんのご厚意に甘えることになりますが、もしよろしければ、CreateWindowに関する
ヒントを頂きたいと思います。

なお、書込が無くても、12/26には解決とさせていただきます。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

CreateWindowを使うのは、ダイアログリソースを使わない非MFCであるときだと思いま
す。
http://www.sm.rim.or.jp/~shishido/mdialog.html

ダイアログリソースを使う場合は、非 MFCである場合DialogBox関数またはCreateDialog
を使います。
(ここら辺はお決まりの「猫でも分かるプログラミング」のWindows SDK編 第1部 を最
初から順に勉強すると分かりやすいとおもいます。)

今回の場合は、ダイアログリソースもあり、MFCでクラス化されてしまっているので
CreateWindowの出番はないかと思われます。


返信引用
Mr.Boo
 Mr.Boo
(@Mr.Boo)
ゲスト
結合: 19年前
投稿: 15
Topic starter  

Blueさん、済みませんが、もう少しおつきあい願えませんでしょうか。

>> とりあえず適当に検索してみたサイト
> これあんまよくないっぽ。
後から教えていただきました検索結果のサイトを調べてみたのですが
(済みません、全部ではなく先頭10箇所ほどです)
最初に教えていただきましたサイトに記載されている内容と、違いがわかりません。
最初のサイトの内容ですと、どこがよくないのか教えていただけませんでしょうか?

それと書き忘れておりましたが、実現したいのはモーダルダイアログです。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> 最初のサイトの内容ですと、どこがよくないのか教えていただけませんでしょうか?
単にわかりづらいかなぁと思っただけです。
自分に合うかどうかはいろんなサイトを見たほうがいいかなぁと。

語弊をまねくような表現をしてしまってスイマセンでした。


返信引用
Mr.Boo
 Mr.Boo
(@Mr.Boo)
ゲスト
結合: 19年前
投稿: 15
Topic starter  

Blueさん、色々お教えいただき有り難う御座いました。

お教えいただいた内容を元に、もっと自分でも掘り下げて調べていきたいと思います。

解決とさせていただきます。

有り難う御座いました。


返信引用
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 21年前
投稿: 830
 

MFC で、モーダルだったらよけいに CreateWindow など使う必要はないです。
なんか、水泳を覚えるのに水着の作り方を調べているような気がします。
CDialog とそのメンバ DoModal を覚えるほうが近道。

Windows は初めてでも C/C++ はかなり知ってるのでしょうか?
それなら、いきなり MFC で近道してもいいかもしれない。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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