Я пытаюсь создать кнопку динамически. Я прочитал некоторые другие ресурсы и сделать следующий код:
MFC SDI Создать кнопку динамически
BEGIN_MESSAGE_MAP(Cdynamic_button_sdiView, CView)
// Standard printing commands
ON_BN_CLICKED(MYBUTTONID, OnMyBN_Click)
END_MESSAGE_MAP()
void Cdynamic_button_sdiView::OnInitialUpdate()
{
CView::OnInitialUpdate();
m_Button.Create(_T("Rearrange"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(0, 0, 128, 32), this, MYBUTTONID); // here will create a button
}
я могу сделать кнопку успешно, когда я запустить приложение MFC. Проблема заключается в том, что, когда я пытаюсь открыть новый документ, нажав:
Я получаю сообщение об ошибке, и мое приложение разбился на m_Button.Create(_T("Rearrange"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(0, 0, 128, 32), this, MYBUTTONID);
есть 3 кнопки на этом утверждении Диалог. Один из них выдаст массу полезной информации, включая предварительное условие, что ваш код не смог встретиться. – IInspectable
Почему вы не ставите точку останова в строке 673 вашего файла 'C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ mfc \ wincore.cpp' и следуете за стеком вызовов? Сообщение довольно ясно, в каком направлении вы должны следовать! – sergiol
И хотя у меня есть подозрения о том, что не так с вашим кодом, я не скажу вам их, потому что я хочу, чтобы вы отлаживали его! Несколько лет спустя вы увидите преимущества. – sergiol