Scrollbar in DialogBox



  • Hallo Leute.

    Ich habe eine ScrollBar in einer DialogBox.

    Die Message WM_HSCROLL habe ich schon behandelt. Dort habe ich case (wParam) für die Pfeile, Schäfte und die Start- und Endposition. Nun möchte ich aber auch noch SB_THUMBTRACK behandeln, aber WM_HSCROLL wird nicht mit dem wParam = SB_THUMBTRACK gesendet - heißt ich kann den ThumbTracker verschieben, aber beim Loslassen verharrt er in seiner ursprünglicchen Position.

    Was muss ich tun, damit SB_THUMBTRACK in DialogBoxen gesendet wird? muss ich da was aktivieren?

    Danke.

    case WM_HSCROLL:
    		switch (wParam)
    		{
    		case SB_LINELEFT:
    		case SB_LINERIGHT:
    		case SB_PAGELEFT:
    		case SB_PAGERIGHT:
    		case SB_TOP:
    		case SB_BOTTOM:
    			dwFrequency = GetScrollPos(GetDlgItem(hDlg, IDC_FREQ_BAR), SB_CTL);
    
    			if (wParam == SB_LINELEFT)
    			{
    				if (dwFrequency > FREQUENCY_MIN + 1)
    					dwFrequency -= 2;
    				else
    					dwFrequency = FREQUENCY_MIN;
    			}
    			else if (wParam == SB_LINERIGHT)
    			{
    				if (dwFrequency < FREQUENCY_MAX - 1)
    					dwFrequency += 2;
    				else
    					dwFrequency = FREQUENCY_MAX;
    			}
    			else if (wParam == SB_PAGELEFT)
    			{
    				if (dwFrequency > FREQUENCY_MIN + 19)
    					dwFrequency -= 20;
    				else
    					dwFrequency = FREQUENCY_MIN;
    			}
    			else if (wParam == SB_PAGERIGHT)
    			{
    				if (dwFrequency < FREQUENCY_MAX - 19)
    					dwFrequency += 20;
    				else
    					dwFrequency = FREQUENCY_MAX;
    			}
    			else if (wParam == SB_TOP)
    				dwFrequency = FREQUENCY_MIN;
    			else
    				dwFrequency = FREQUENCY_MAX;
    
    			SetScrollPos(GetDlgItem(hDlg, IDC_FREQ_BAR), SB_CTL, (int)dwFrequency, TRUE);
    			SetDlgItemInt(hDlg, IDC_FREQ_VALUE, (int)dwFrequency, FALSE);
    			break;
    


  • Hallo,

    die WM_HSCROLL-Nachricht wird falsch behandelt, denn:

    MSDN-Doku schrieb:

    The low-order word specifies a scroll bar value that indicates the user's scrolling request.
    The high-order word specifies the current position of the scroll box if the low-order word is SB_THUMBPOSITION or SB_THUMBTRACK; otherwise, this word is not used.

    MfG,

    Probe-Nutzer


Anmelden zum Antworten