MFC 버튼이 왜 항상 2번 눌러야 실행될까?

조회수 1626회

항상 느끼는 거지만... MFC 버튼을 눌렀을시 어떤 계산식이 들어가게 코드를 작성하면,

1번 눌렀을 때는 실행이 안되었다가, 2번 눌렀을시 실행이 됩니다.

당연히 버튼은 BN_CLICKED 로 지정하였습니다.

다음은 문제가 되는 간단한 코드입니다.

void TIMEdlg::OnRunButton() 
{
    // TODO: Add your control notification handler code here
    int PutinTime;
    int Hour,Min,Sec;

    PutinTime = (m_EditPutinTime);


    Hour = PutinTime / (60*60);
    Min = ( PutinTime % (60*60) ) / 60;
    Sec = ( ( PutinTime % (60*60) ) % 60 );

    UpdateData(true);
    {
        m_EditHour = Hour;
        m_EditMin = Min;
        m_EditSec = Sec;
    }
    UpdateData(false);
}

보시는 바와 같이.

버튼에 int 를 선언하고, 멤버 변수 또한 int 형으로 되어있는 상태입니다.

int 형인 [m_EditHour] Edit박스에게 Hour 값을 넣어주는 아주 간단한 코드입니다.

그러나 아이러니 하게도, 항상 버튼에 int 선언과 간단한 계산식을 넣어주고 UpdateData를 해주면..

버튼을 2번 째 클릭 했을시에, 녀석들이 값을 실행하여 보여줍니다..

mfc가 의도한건 아닌거 같은데.. 도대체 뭐가 문제죠?

1번 클릭했을 시 바로 반응하게 할 수는 없을까요?

도움 요청 드립니다.

  • 먼저 버튼에는 멤버변수 안넣어도 됩니다..먼저 int로 선언했다하는게 이해가 안되고 UpdateData(TRUE) 에 세미콜론은 왜 붙이신건지도 모르겠고요 알 수 없는 사용자 2018.4.25 08:07

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)