通知
すべてクリア
Topic starter
2003年7月30日 2:16 AM
環境は、Win2000(SP3)、VC6.0、MFCです。
MFCでプログラムを作成しているのですが、
新規作成(OnNewDocument())のイベントが、
メニューから選択されてきたのか、
それとも起動時にOnNewDocument()を
呼ばれて来たのかを知りたいのです。
コールスタックを見たところ
同じ流れできているようです。
「メニューから選択された」という
状態が分かれば良いと思うのですが・・
助言等よろしくお願いします。
2003年7月30日 8:28 AM
同じ物が呼ばれているわけですから呼ばれてから区別するのは難しいです。
誰から呼ばれたか、で判断するしかないですね。
起動時に呼ばれるときは、
C**App::InitInstance()の中の
cmdInfo.m_nShellCommandに値がセットされます.
ParseCommandLine(cmdInfo);の後で
if(cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
{
//ご希望の処理、例えば
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
}
//なんてすれば、起動時に新規作成されないようにできます。
メニューから選択された時は、項目のIDから独自のハンドラを作成
(クラスウィザードからメンバ関数を作成)し、そこでフラグを立てるとか
ですかね。
Topic starter
2003年7月30日 10:58 AM
Daisukeさんどうもありがとうございました。
おかげさまで期待する処理ができました。