ダイアローグ開いている間もメインウインドウへアクセスしたい – プログラミング – Home

ダイアローグ開いている間もメインウイン...
 
通知
すべてクリア

[解決済] ダイアローグ開いている間もメインウインドウへアクセスしたい


AK
 AK
(@AK)
ゲスト
結合: 21年前
投稿: 15
Topic starter  

メインウインドウからダイアローグを生成すると、ダイアローグを閉じるまでメインウ
インドウは有効になりませんが、これをダイアローグが開いている間もメインウインド
ウを有効にすることはできないでしょうか?
よろしくお願いいたします。


引用未解決
トピックタグ
とおりすがり
 とおりすがり
(@とおりすがり)
ゲスト
結合: 23年前
投稿: 180
 

モードレスで生成すればいい


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

ちょっと補足。
モードレスダイアログで調べてみると進展があると思います。
但し、モーダルダイアログと違って自前で色々考えて管理しないと
うまく行かないのでそれぞれの処理の意味を一つ一つ確認しながら
進めていかれる事をお勧めします。


返信引用
まに
 まに
(@まに)
ゲスト
結合: 18年前
投稿: 78
 

ちなみに「ダイアローグ」は「ダイアログ」では?


返信引用
ぬふや
 ぬふや
(@ぬふや)
ゲスト
結合: 18年前
投稿: 34
 

>ちなみに「ダイアローグ」は「ダイアログ」では?
そのへんはどっちでも正しいが、ダイアログのほうが良く使われているってだけだとお
もうけど。サーバとサーバーのような。

と思ったらアメリカ英語とイギリス英語という関係みたいです。
辞書引くと、アメリカ英語のほうがDialogで
イギリス英語のほうがDialogueとなっていました。
ということはダイアログのほうが正しそうですね。
多分アメリカ英語なので。
しかしプログラミングさえも綴りが違うなど面倒ですね。

おまけ。"で囲むのがアメリカで''で囲むのがイギリスらしい。

質問の方はモードレスダイアログで良いと私も思います。


返信引用
んー
 んー
(@んー)
ゲスト
結合: 19年前
投稿: 14
 

>ちなみに「ダイアローグ」は「ダイアログ」では?
どっちでもあってる

gooの発音は「ダイアローグ」かな
http://dictionary.goo.ne.jp/search.php?id=exej0096510-00000-00000-
00000&kind=ej&mode=5


返信引用
aharen
 aharen
(@aharen)
ゲスト
結合: 18年前
投稿: 35
 

>モードレスで生成すればいい
そうですね
講座的サイトを見れば出ていると思います
生成することや処理をダイアログ内で終わらせる分には
それほどむずかしくないとおもいます
メイン→ダイアログやダイアログ→メインの
やりとりがちょっと難しかったです
これにはポインタをクラスの型でキャスティングする場合と
thisポインタを使って共通的にやる方法があるようです
共通的なやりかたは覚えやすく応用もしやすいので
いまのともっぱらこれ使っています
(参考例:林晴比古のVC++シニア編)

>>ちなみに「ダイアローグ」は「ダイアログ」では?
>そのへんはどっちでも正しいが、ダイアログのほうが良く使われているってだけだとお
>もうけど。サーバとサーバーのような。
そうですね
英語の発音をカタカナで表現するのは無理な部分があると言うよりは
人の好みや感覚によっていろいろ分かれる場合もあると思います
ダイア か ダイヤ か
ロ か ラ か(英式 か 米式 か)
長音 か 短音 か
などあるけど本筋では問題ないかも


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

> メイン→ダイアログやダイアログ→メインの
> やりとりがちょっと難しかったです

大量のデータの受け渡しが必要で無いなら
ユーザー定義のウインドウメッセージでやり取りするようにすると
ウインドウ間の結合度が下がるので色々面白い事ができますよ。
SDIやMDIで行う時はCFrameWndの派生クラスで全てのメッセージを受けて
必要に応じてメッセージのディスパッチを行うようにしてました。
この方法だと送出先は、AfxGetMainWnd()で得られたポインタを使って
PostMessageをするだけで済むので各ダイアログは送出先を意識しないで
済みます。
CFrameWndの派生クラスは受け取ったメッセージの種類やパラメータから
判断してディスパッチ先のウインドウを特定してメッセージを配信します。
一度仕組みを作ってしまうと応用が利くので試してみるのもいいかと思います。
このつくりの場合、全てのダイアログのポインタはCFrameWndの派生クラスで
管理しています。ウインドウの表示もCFrameWndの派生クラスに依頼し、
非表示や破棄もCFrameWndの派生クラスに依頼する形にしていました。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

> メイン→ダイアログやダイアログ→メインの
> やりとりがちょっと難しかったです
 いっそうのこと、データ用のクラスを作って、ダイアログとメインウインドウと
共有にすれば、大量のデータも扱えるようになると思います。
 データーの受け渡しは、皆さんの意見通り「PostMessage」等を使えばいいと
思います。


返信引用
AK
 AK
(@AK)
ゲスト
結合: 21年前
投稿: 15
Topic starter  

モードレスモードで解決できました。ありがとうございます。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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