If the reason for needing the message box on Cancel of the File Save dialogue is because you're shutting things down with unsaved changes, then I suggest putting the call to the File Save dialogue in a loop that keeps going until a flag is set to stop the loop and call the message box if you don't get OK as the result. For example:
// lead-up code
SaveFileDialog sft = new SaveFileDialog();
BOOL bDone;
do
{
if (DialogResult.OK == sft.ShowDialog())
bDone = true;
else
{
DialogResult result = MessageBox.Show("Are you sure you don't want to save the changed file?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
bDone = (result == Yes) ? true : false;
}
} while (!bDone);
// carry on
This way, the File Save dialogue behaves consistently with the way it does in other in Windows apps, and you get to let the user have another go at saving the file(s) if he accidentally hits Cancel in the File Save dialogue.