2012-12-27 3 views
1

MFC의 스핀 컨트롤을 사용하여 C++에서 숫자 값을 변경합니다.스핀 컨트롤이 작동하지 않습니다.

void CHello_worldDlg::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult) 
{ 
    LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR); 
    // TODO: Add your control notification handler code here 
    m_fSpinIncrement = m_fScalingFactor; 
    if(pNMUpDown->iDelta == -1) // Increment the value 
    { 
    IncrementData(m_fSpinIncrement); 
    } 
    else // Decrement the value 
    { 
    DecrementData(m_fSpinIncrement); 
    } 
    SetDlgItemText(IDC_TEXT3, IDC_SPIN1); 
    *pResult = 0; 
} 

오류 내부가 : 여기

내 코드? 및 수의 변화는 또 다른 정적 텍스트 상자에 ~에

감사

답변

0

당신이 코드의 어떤 부분에서 SpinButtonCtrl: SetRange() 메소드를 호출 했 될 것 ?? 귀하의 코드에서, 나는 그것이 당신이 원하는 범위를 얻고 있다고 생각하지 않습니다.

+0

내 코드의 BOOL CHello_worldDlg :: OnInitDialog() 부분에 범위를 설정했습니다. – user1670247

+0

죄송 합니다만 스핀 컨트롤이 작동하지 않는 방법에 대해 자세히 설명해 주시겠습니까? 숫자가 증가하거나 감소하지 않는다는 것을 의미합니까? – user1931045

+0

화살표 위/아래 버튼을 누르면 텍스트 상자 값이 증가/감소하지 않습니다. 덕분에 – user1670247

3

너무 많은 작업을하고 있습니다. 당신이하려는 모든 단순히 적절한 properties of the spin control를 설정하여 더 나은 수행 할 수 있습니다

  1. Auto Buddy은 이전의 편집 상자에 스핀 컨트롤을 연결합니다.
  2. Set Buddy Integer은 편집 상자에서 정수를 자동으로 처리합니다.
  3. Alignment을 '오른쪽'으로 설정하면 스핀 컨트롤이 편집 상자에 깔끔하게 고정됩니다.

당신의 OnInitDialog에서 SetRange()를 호출해야 할 유일한 코드입니다.

관련 문제