2011-09-30 3 views
0

리소스 편집기에서 새 대화 상자로 만든 자식 대화 상자가 있습니다. 그런 다음 부모 대화 상자에 정적 컨트롤을 사용하여 자리 표시 자 역할을 수행했습니다. 자식 컨트롤은 자리 표시자가 다음 코드를 사용하는 위치에 표시됩니다.MFC : 자식 대화 상자의 기본 단추를 작동시키는 방법?

CRect rect; 
m_optionPanelPlaceholder.GetWindowRect(&rect); // In screen coordinates 
ScreenToClient(&rect); 
m_optionPanelPlaceholder.ShowWindow(SW_HIDE); 

optionsDialogPanel_ = new OptionsDialogPanel(settings_); 
// Call Create() explicitly to ensure the HWND is created. 
optionsDialogPanel_->Create(OptionsDialogPanel::IDD, this); 

// Set the window position to be where the placeholder was. 
optionsDialogPanel_->SetWindowPos 
    (
    NULL, 
    rect.left, 
    rect.top, 
    rect.Width(), 
    rect.Height(), 
    SWP_SHOWWINDOW 
    ); 

모두 제대로 작동합니다. 내 자식 대화 상자에는 기본 단추로 설정된 단추가 있습니다. 마우스로 버튼을 클릭하면 원하는 동작을 수행합니다. 그러나 나는 자식 대화 상자의 편집 텍스트 상자에서 Enter 키를 누르고 기본 단추의 동작을 수행하려고합니다. 그러나 그것은 작동하지 않습니다; 내가 어떻게 할 수 있니?

답변

0

대화 상자에서 입력 버튼을 누르면 Parent :: OnOK 메서드가 호출됩니다. 따라서 Child :: OnOK는 Parent :: OnOK 메서드 내에서 호출 할 수 있습니다.

감사합니다.

1

버튼의 ID가 IDOK이고 IDC_ *이 아닌지 확인하십시오. MFC는 나머지를 처리합니다!

관련 문제