You have to filter very "WM_KEYDOWN" message and check whether "CTRL + S" is happend. For that you can override "PreTranslateMessage(pMsg)" . Plz see the code snippet you have to add in "PreTranslateMessage(pMsg)". if ( WM_KEYDOWN == pMsg->message && pMsg->wParam == 0x53 /* 'S' */) { if ( ( ::GetKeyState ( VK_LCONTROL ) & KF_UP ) || ( ::GetKeyState ( VK_RCONTROL ) & KF_UP ) ) { // Ctrl + s pressed. Write ur code here. } } return CDialog::PreTranslateMessage(pMsg);