Я уже говорил, что этого сообщения нет в описании сообщений. Придется все самому делать ручками. Описываем функцию реакции:
class CTestDialog : public CDialog { // Construction public: CTestDialog(CWnd* pParent = NULL); // standard constructor CStringArray *cs; void AFXAPI CTestDialog::DDX_Array(CDataExchange* pDx,int ID ); afx_msg void OnSetIcon(WPARAM w, LPARAM i); ....... };
Макрос перехвата сообщения:
BEGIN_MESSAGE_MAP(CTestDialog, CDialog) //{{AFX_MSG_MAP(CTestDialog) ON_WM_CREATE() ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_WM_CHAR() //}}AFX_MSG_MAP ON_MESSAGE(WM_SETICON,OnSetIcon) END_MESSAGE_MAP()
Ну, и саму функцию:
void CTestDialog::OnSetIcon(WPARAM w, LPARAM i) { AfxMessageBox("Icon"); }
Тут же запустив программу Вы увидите, что иконы нет.
Хотя информация о вызове этого сообщения появляется при запуске диалога.
Применить можно для запрета классам наследникам устанавливать икону или установки иконы связанной с классом окна.