main()関数を持ち、モードレス ダイアログをポップするコンソール アプリケーションを作成して、コンソールがモードレス ダイアログと並行して動作できるようにする必要があります (モードレス ダイアログとの通信など、他の作業を行います)。
何を試しても、モーダルダイアログしか表示できませんでした。(モーダルダイアログが閉じるまでコンソールが保留されます)。
Create() および ShowWindow() を使用してモードレスダイアログに切り替えると、ダイアログはコントロールなしで表示され、フリーズまたはブロックします(砂時計カーソルが表示されます)。
1) main() 関数からモードレス ダイアログをポップしようとしました。
void main()
{
AfxWinInit(GetModuleHandle(NULL), NULL, GetCommandLine(), SW_SHOW);
TestGUI * gui;
gui = new TestGUI();
gui->Create(TestGUI::IDD);
gui->ShowWindow(SW_SHOW);
// just to see if the modeless dialog responses
Sleep(10000);
}
2) CWinApp 派生クラスの InitInstance() からモードレス ダイアログをポップしようとしました。
extern int AFXAPI AfxWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine, int nCmdShow);
class MyApp : public CWinApp
{
public:
virtual BOOL InitInstance()
{
gui = new TestGUI();
gui->Create(TestGUI::IDD);
gui->ShowWindow(SW_SHOW);
return TRUE;
}
private:
TestGUI * gui;
};
MyApp my_app;
void main()
{
AfxWinMain(GetModuleHandle(NULL), NULL, GetCommandLine(), SW_SHOW);
// just to see if the modeless dialog responses
Sleep(10000);
}
いずれの場合も、モードレス ダイアログがフリーズします。
これは1行のソリューションだと思います。
助けてください。
TNX、
バーティルカ