Visual C++ and MFC Fundamentals Chapter 15: Fundamental Controls
- Close the application and return to MSVC
- In order to enable the Apply button, we need to have it.
To redisplay the Apply button, change the CGeomeSheet::OnInitDialog() event as
follows:
BOOL CGeomeSheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
// TODO: Add your specialized code here
// A pointer to each button we will need
CButton *btnOK, *btnCancel, *btnApply, *btnHelp;
// We will need to location and dimensions of Apply and Help
CRect RectCancel, RectApply, RectHelp;
// Get handles to all buttons
btnOK = reinterpret_cast<CButton *>(GetDlgItem(IDOK));
btnCancel = reinterpret_cast<CButton *>(GetDlgItem(IDCANCEL));
btnApply = reinterpret_cast<CButton *>(GetDlgItem(ID_APPLY_NOW));
btnHelp = reinterpret_cast<CButton *>(GetDlgItem(IDHELP));
// Get the location and the dimensions of the buttons
btnCancel->GetWindowRect(&RectCancel);
btnApply->GetWindowRect(&RectApply);
btnHelp->GetWindowRect(&RectHelp);
// Destroy the Help button
btnHelp->DestroyWindow();
// Convert the location and dimensions to screen coordinates
ScreenToClient(&RectCancel);
ScreenToClient(&RectApply);
ScreenToClient(&RectHelp);
// Put the Apply button where the Help button was
btnApply->SetWindowPos(NULL, RectHelp.left, RectHelp.top, 0, 0,
SWP_NOSIZE | SWP_NOZORDER | SWP_SHOWWINDOW);
// Put the Cancel button where the Apply button was