Enter 키 및 ESC 키 처리

1586 단어
1. 대화상자 프로그램에서 Enter 키 또는 ESC 키를 누르면 OnOK() 함수와 Enter 키는 Oncancel() 함수에 해당하므로 현재 대화상자가 종료됩니다.
현재 대화상자를 종료하지 않으려면 위의 두 함수에 void CDialog:::OnOK () {//TODO: 여기에 전용 코드와/또는 호출 기본 클래스를 추가합니다//CDialog::OnOK ()
void CDialog::Oncancel() {//TODO: 여기에 전용 코드 및/또는 호출 베이스 클래스 추가
//CDialog::OnCancel();  }
//OnOK와 Oncancel을 빼면 된다.
 
2. 프로그램을 만들 때 "확인"과 "취소"키를 삭제하고 이 두 함수를 찾을 수 없으면 다시 불러오기만 하면 됩니다.
<span style="font-size:18px;">//CXXXDlg.h   
protect://public     
virtual void OnOk();  
virtual void OnCancel();  
  
//CXXXDlg.cpp   
  
void CXXXDlg::OnOk()//     OK   
{  
  
}  
void CXXXDlg::OnCancel()//    
  
{  
  
}</span>

 
3. 상기 절차를 밟으면 프로그램의 오른쪽 상단에 있는 "X"를 누르면 프로그램을 닫을 수 없으며 WM 을 다시 불러와야 합니다CLOSE 메시지 처리 함수
ClassWizard에 WM 추가CLOSE의 메시지 처리 함수,
Enddialog(IDCANCEL) 추가;//매개 변수는 스스로 필요에 따라 기입할 수 있다
<span style="font-size:18px;">void CDlgxxx::OnClose()    //X      
{  
    // TODO: Add your message handler code here and/or call default  
    EndDialog(IDCANCEL);    //      
    CDialog::OnClose();  
}</span>

이렇게 하면 프로그램 종료 기능을 실현할 수 있다.
 
자세한 내용은 다음을 참조하십시오.http://blog.csdn.net/phenixyf/article/details/41897055
 
4. 리턴 키나 ESC가 창을 종료하지 않고 특정한 컨트롤에 대해 특별한 조작을 수행하려면 PreTranslateMessage 함수를 사용하여 이 두 키의 조작을 차단하고 해당하는 처리 조작을 추가해야 한다.
구체적인 실현은 참고할 수 있다.http://blog.csdn.net/phenixyf/article/details/41645771
http://blog.csdn.net/phenixyf/article/details/41643977
 

좋은 웹페이지 즐겨찾기