本帖最后由 VisualEleven 于 2014-08-14 15:44:41 编辑

解决方案 »

  1.   

    --------------------------------------------------------------------------------------------------------------------------------------------------
    void CThres::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) //实时更新滑块与编辑框的状态
    {
    CSliderCtrl *Trackbar=(CSliderCtrl*)GetDlgItem(IDC_TRACKBAR);//定义滑块指针
    char ShowThres[10];
        int Thres;
    LONG lLineBytes=WIDTHBYTES(m_lWidth*8);
    memcpy(m_lpDIBBits,m_lpNewDIBBits,lLineBytes * m_lHeight);//从备份像素中恢复原来的像素值
    Thres=Trackbar->GetPos();//获取滑块位置
    m_Trackbar=Thres;
    itoa(Thres,ShowThres,10);//字符转变为整型
          GetDlgItem(IDC_SHOWTHRES)->SetWindowText(ShowThres);//把提取出来的数值显示在编辑框上
    /////////////////////////////////////////////////////////开始阈值变换
    int i,j,target;
    BYTE * lpSrc;
        for(i = 0; i < m_lHeight; i++)      
               for(j = 0; j < m_lWidth; j++)        //逐列扫描
       {         // 指向DIB第i行,第j个象素的指针,从左到右,从上到下地扫描                   
                  lpSrc = (unsigned char*)m_lpDIBBits + lLineBytes * i + j;      
                  target = *lpSrc;     
      if(target<m_Trackbar)                   
    target=0;
      else
    target=255;  
      *lpSrc = target;     //像素设定
    }
    -------------------------------------------------------------------------------------------------------------
    以上就是当滑块被点击时的响应函数,如何在这函数里添加其他函数来重绘图片