タッチディスプレイ利用時に、MFCアプリケーションが強制終了する場合がある

現象
MFCアプリケーションにおいて、1つのダイアログ オブジェクトを繰り返し利用すると、タッチディスプレイ利用時に、アプリケーションが強制終了する場合があります。
原因
次のコードのように、1つのダイアログ オブジェクトを繰り返し利用すると、オブジェクトが持つ情報とウィンドウの情報の整合性が無くなり、アプリケーションが強制終了する現象が発生します。



ダイアログの作成と表示の例
===================

・ クラスのメンバ変数としてダイアログを作成します。 
CSampleDlg m_Dlg;


・  ダイアログ オブジェクトを繰り返して使用します。
void CSample::OnBnClickedOk()
{
  m_Dlg.DoModal();
}

解決方法
ダイアログ オブジェクトは、利用する度にスタック上に作成して下さい。この方法で利用する場合は、オブジェクトとウィンドウ情報が正しく紐付くため、アプリケーションが強制終了することはありません。


ダイアログの作成と表示の例
===================

void CSample::OnBnClickedOk()
{
    CSampleDlg dlg;
    dlg.DoModal();
}


状況
この動作は、MFC の仕様に基づく動作です。


詳細
注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2909698 - 最終更新日: 09/29/2016 15:31:00 - リビジョン: 3.0

Microsoft Visual Studio 2010 Remote Debugger, Windows 7 Service Pack 1, Windows 8

  • KB2909698
フィードバック