リソース エディターで新しいダイアログとして作成した子ダイアログがあります。次に、親ダイアログで静的コントロールを使用して、プレースホルダーとして機能させました。子コントロールは、プレース ホルダーが次のコードを使用している場所に表示されます。
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 キーを押すだけで、デフォルト ボタンのアクションが実行されます。ただし、機能していません。これどうやってするの?