Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > Отправить диалогу сообщение нажатия кнопки


Автор: MarS 2.1.2006, 17:57
Всем привет. Не могу разобраться: надо при инициализации диалога отправить ему сообщение нажатия кнопки. Делаю так, ничего не происходит:

Диалоговое приложение. Текст файла magicsquare.cpp:
Код

...
BEGIN_MESSAGE_MAP(CmagicsquareDlg, CDialog)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    //}}AFX_MSG_MAP
//    ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
//ON_WM_CREATE()
ON_BN_CLICKED(IDC_BUTTON_GEN_MS, OnBnClickedButtonGenMs)
ON_BN_CLICKED(IDC_BUTTON_ENCR, OnBnClickedButtonEncr)
END_MESSAGE_MAP()


// CmagicsquareDlg message handlers

BOOL CmagicsquareDlg::OnInitDialog()
{
    CDialog::OnInitDialog();

    ...
    // Так не катит:
    SendMessage(BN_CLICKED, IDC_BUTTON_GEN_MS);

    // Так тоже не катит:
    //SendDlgItemMessage(IDC_BUTTON_GEN_MS, BN_CLICKED, 0, 0);

    return TRUE;  // return TRUE  unless you set the focus to a control
}


или я чего-то не понял, или понял, но не я
Заранее спасибо.

Автор: Nitro89 4.1.2006, 20:14
А резон тебе делать через посылку сообщения, может просто вызвать функцию, которая обратбатывает нажатие той кнопки (OnBnClickedButtonGenMs).
Другой вариант, правда я не совсем до конца понимаю, но это рабоает. Надо посылать не сообщение, а команду.
Код

SendMessage(WM_COMMAND, IDC_BUTTON_GEN_MS);

Это точно сработает.

Автор: Nuzur 5.1.2006, 00:57
Месседж посылать не имеет никакого смысла, ет ж 1-н клас.
Просто вызови функцию оброботчик данного сообщения и не мучайся!

Автор: MarS 5.1.2006, 10:32
Всем спасибо, просто хотел разобраться smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)