2016-09-30 2 views
0

버튼을 동적으로 만들려고합니다. 나는 다른 리소스를 읽고 다음과 같은 코드를 확인했다 : 나는 MFC 응용 프로그램을 시작할 때 성공적으로 버튼을 만들 수 있습니다
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 
} 

합니다.
enter image description here
을 나는 오류가 내 응용 프로그램은 내가 다음 코드로 문제를 해결 m_Button.Create(_T("Rearrange"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(0, 0, 128, 32), this, MYBUTTONID);
enter image description here

+0

의 OnInitialUpdate() 안에 윈도우를 다시 작성해서는 안입니다 수 있음 대화. 그 중 하나는 코드가 충족하지 못한 선행 조건을 포함하여 많은 유용한 정보를 제공합니다. – IInspectable

+0

C : \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ VC \ atlmfc \ src \ mfc \ wincore.cpp 파일의 673 줄에 중단 점을 넣고 호출 스택을 따르지 않는 이유는 무엇입니까? 메시지는 여러분이 따라야 할 방향에 대해 아주 분명합니다! – sergiol

+0

그리고 코드에 무엇이 잘못되었는지 의심 스럽지만, 내가 디버그 해주기를 바란다. 몇 년 후, 당신은 혜택을 볼 수 있습니다. – sergiol

답변

0

에서 추락 : 문제는 내가 클릭하여 새 문서를 열 때이다

Cdynamic_button_sdiView::Cdynamic_button_sdiView() 
{ 
    // TODO: add construction code here 
    m_Button = NULL; 
} 

Cdynamic_button_sdiView::~Cdynamic_button_sdiView() 
{ 
    if (m_Button != NULL) 
     delete m_Button; 
} 
void Cdynamic_button_sdiView::OnInitialUpdate() 
{ 
    CView::OnInitialUpdate(); 

    if (m_Button != NULL) 
     delete m_Button; 

    m_Button = new CButton; 
    m_Button->Create(_T("Rearrange"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(0, 0, 128, 32), this, MYBUTTONID); // here will create a button 
} 

문제가 내가 3 개 버튼은 그 주장에 있습니다

관련 문제