思わぬSC_CLOSE処理 (WM_SYSCOMMAND)

[戻る]
TOBY 2006/05/17(水) 14:45:20
はじめまして。
現在、MFCのダイアログベースにてシリアル通信プログラムを行っています。
一つ、どうしても解決できない箇所がありまして投稿しました。

アプリケーション起動後に何も操作を行わず放置しておよそ20分経過した場合
メインダイアログクラスのOnSysCommand()にSC_CLOSEが飛んできて、
思わぬSC_CLOSE処理が行われエラーとなってしまいます。

なにかしら原因があり内部的にSC_CLOSEが飛んでくるケースとかあるのでしょうか?
どうかご教授宜しくお願いします。

また、コーディングしたソース内でWM_SYSCOMMANDのSC_CLOSEを飛ばしている箇所は
メニューをクリックした時しか行っていません。

開発環境はVC++6.0でWindows2000です。
宜しくお願いします。

TOBY 2006/05/17(水) 15:49:47
[[解決]]
解決できました!
WM_SYSCOMMAND関数内でのマスクを以下で行っていたため
         if ((nID & 0xF060) == SC_CLOSE){
        OnClose();
    }
モニター電源時もディスパッチしてしまってました、、、。

#define SC_MONITORPOWER 0xF170

初歩的なミスを投稿してすみませんでした。

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