ウィンドウへのポインタ取得 – プログラミング – Home

ウィンドウへのポインタ取得
 
通知
すべてクリア

[解決済] ウィンドウへのポインタ取得


VC初心者
 VC初心者
(@VC初心者)
ゲスト
結合: 23年前
投稿: 21
Topic starter  

はじめまして、VC初心者です。
いつも、このサイト参考にしているものです。
そこでどなたか教えていただきたいのですが、今、環境 Win2000 VC++6.0のMFCでプログラム
を作っているのですが、ダイアログベースで例えば、3つのダイアログA、B、Cを使用すると
してAが親ダイアログでBが子、Cが孫ですよね。それで孫ウィンドウを表示させたときに子の
ダイアログのポインタが取得したいのですが、どうすればいいのか分からなくって困っていま
す。誰か助けてください。お願い!!
よろしくお願いします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 23年前
投稿: 1301
 

たとえば:

class C : public CDialog {
B* 子;
public:
void set子(B* b) { 子 = b; }
...
};

void B::なにか() {
C c;
c.set子(this);
c.DoModal();
}


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

単に自分の親のポインタがほしいだけならCWndにGetParentで取得できます。
取得した後、親ダイアログのクラスにキャストすれば親ダイアログ独自のメンバー関数も
呼び出せます。

但し、ダイアログのインスタンス生成時に親を指定しておくことが必要です。

あと、親子関係を書いていますが、表示上の画面の出る順番とクラス上の親子関係は
必ずしも一致しないので書き込むときはその辺をちゃんと書きましょう。

ダイアログの生成時に以下のようにすれば、ウインドウ間の親子関係は指定できます。

CXXXDialog dlg(this);

CXXXDialogの中でGetParentすれば、dlgを宣言したクラスのポインタが取れるはずです。


返信引用
VC初心者
 VC初心者
(@VC初心者)
ゲスト
結合: 23年前
投稿: 21
Topic starter  

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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