CPropertyPage::SetModified
プロパティ ページの設定が適切な外部オブジェクトに適用されているかどうかによって、[今すぐ適用] ボタンを有効、または無効にします。
void SetModified(
BOOL bChanged = TRUE
);
パラメーター
- bChanged
TRUE は、プロパティ ページの設定が、最後に使用されたとき以降変更されていることを示します。FALSE は、プロパティ ページの設定が既に使用されているか、または無視されていることを示します。
解説
フレームワークは、どのページが "ダーティ"、つまりどのページに対して SetModified( TRUE ) が呼び出されたかを監視しています。 いずれかのページに対して SetModified( TRUE ) を呼び出すと、[今すぐ適用] ボタンは常に有効になります。 いずれかのページに対して SetModified( FALSE ) が呼び出されたときは、他のページがどれも "ダーティ" でない場合だけ、[今すぐ適用] ボタンは無効になります。
使用例
// OnColorClicked() is a member function of CColorPage (a
// CPropertyPage-derived class). It is called whenever a radio button
// is selected on the page. Call SetModified() to enable the Apply
// button whenever a new selection is made. m_Color is a member
// variable of CColorPage and it is to store the selected RGB color.
// Its entry in the message map looks like this:
// ON_CONTROL_RANGE(BN_CLICKED, IDC_BLACK, IDC_GREEN, CColorPage::OnColorClicked)
void CColorPage::OnColorClicked(UINT nCmdID)
{
COLORREF color = m_Color;
switch (nCmdID)
{
case IDC_RADIOBLACK:
color = RGB(0, 0, 0);
m_radioColor = crBlack;
break;
case IDC_RADIORED:
color = RGB(255, 0, 0);
m_radioColor = crRed;
break;
case IDC_RADIOGREEN:
color = RGB(0, 255, 0);
m_radioColor = crGreen;
break;
case IDC_RADIOBLUE:
color = RGB(0, 0, 255);
m_radioColor = crBlue;
break;
}
if (color != m_Color)
{
m_Color = color;
SetModified(); // Enable Apply Now button.
}
UpdateData(FALSE);
}
必要条件
**ヘッダー:**afxdlgs.h