0

我有一个子对话框,我在资源编辑器中创建了一个新对话框。然后我在父对话框上使用了一个静态控件来充当占位符。子控件显示在占位符使用以下代码的位置:

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 键并执行默认按钮的操作。但是它不起作用;我怎样才能做到这一点?

4

2 回答 2

1

确保您的按钮的 ID 设置为IDOK而不是一些 IDC_ *。MFC 负责其余的工作!

于 2011-11-16T13:32:20.717 回答
0

在对话框中按下回车按钮时,将调用 Parent::OnOK 方法。因此,您可能可以在 Parent::OnOK 方法中调用 Child::OnOK 。

谢谢。

于 2011-10-05T16:59:05.427 回答