VC++ 6.0 MFCウイザードでできるダイヤログをモーダルからモードレスにするには


Visual C++ 6.0 の MFCでウイザードダイヤログを作成すると
無条件でモーダルダイヤログになる。モードレスを使いたい場合は,
以下の方法でモードレスに変更することができる。

ダイヤログのクラス名:CPrintPage で作成した場合,PrintPage.hとPrintPage.cppが
作成されます。そのなかを以下の様に修正します。
※CPrintPageや PrintPage.h PrintPage.cppはクラス名に依存します。
作成したクラス名にあわせてください。

// PrintPage.h の修正

// コンストラクション
public:
CPrintPage(/*CWnd* pParent = NULL*/); // 標準のコンストラクタ  ←変更
BOOL ModelessCreate(CWnd* pParent = NULL ); // ←追加


// PrintPage.cpp の修正

CPrintPage::CPrintPage(/*CWnd* pParent =NULL*/) // ←変更
//: CDialog(CPrintPage::IDD, pParent) // ←変更
{
}

// 以下追加
BOOL CPrintPage::ModelessCreate(CWnd* pParent /* = NULL*/ )
{
BOOL bRet = Create(CPrintPage::IDD, pParent); // ←CPrintPageは自分のクラス名です。
if(bRet){
// OnInitDialogでする処理
}
return bRet;
}



で使うときは,

CPrintPage cDlg;

cDlg.ModelessCreate(); // もしくは,cDlg.ModelessCreate(this);
でできます。



"VC++ 6.0 MFCウイザードでできるダイヤログをモーダルからモードレスにするには" へのコメントを書く

お名前
メールアドレス
ホームページアドレス
コメント