スレッドの中でモーダルダイアログを表示するとエラーになる

[戻る]
三菱 2005/06/29(水) 09:09:38
WinXP sp2 VC++6.0 MFC
スレッド処理の中でDomodalダイアログを立ち上げるとエラーになります。
何故でしょうか?

// 初期設定
BOOL XXXXXXDlg::OnInitDialog()
{
    // スレッド処理
    HANDLE    hThread;
    hThread = (HANDLE)_beginthread(Func,0,this);
}

void Func(LPVOID    pParam)
{
    XXXXXXDlg* pDlg = (XXXXXXDlg*)pParam;

     処理
     :

    YYYYYDlg myR; 
    myR.DoModal();<<===========エラー
}

三菱 2005/06/29(水) 10:29:01
[[解決]]
CWinThreadを利用することで自己解決いたしました。
しかし、Windowsの関数を利用しないとDomodalを構築できないのですね。
勉強になりました。

Ban 2005/06/29(水) 10:38:24
> しかし、Windowsの関数を利用しないとDomodalを構築できないのですね。

Windows の関数...?MFC の〜 のことですか。

XXXXXXDlg がおそらく CDialog なりのサブクラスだからうまく動かなかっただけで、
API で直接ダイアログを生成する分には CWinThread は不要です。

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