We normally dont do this
ON_COMMAND(IDOK, CallDialog)
but we override the OnOK but that should not be the cause of the problem. You are treating IDOK as a normal button and call dialog should be called.

Is it that CallDialog is not getting called then follow this steps

Make a dialog based MFC exe application

Copy the following line in the message map
ON_COMMAND(IDOK, CallDialog)

Now add the CallDialog function in .h as follows
afx_msg void CallDialog();

I think this should do the job

Thanks
Shabbir