我用API(不是MFC)做了一个播放器,
在对话框中放置了一个滑动条控件;
滑动块的ID为IDC_SLIDER
我想设置滑动块的 范围和当前位置:
HWND hChildWnd = GetDlgItem(hDlg,IDC_SILDER);
SetRange(hChildWnd,0,10,true);
SetPos(hChildWnd,4);我在vs2005中编译出现 error C3861: 'SetRange': identifier not found
请问是怎么回事?SetRange需要什么特殊的头文件么?
在MFC中类CSliderCtrl中明明有成员函数SetRange,而MFC是对API的封装,MFC有
的函数,API中应该都有,怎么会找不到呢?

解决方案 »

  1.   

    HWND   WINAPI   CreateSlider(     
              HWND   hwndDlg,     //   handle   of   dialog   box   (parent   window)     
              UINT   iMin,           //   minimum   value   in   trackbar   range     
              UINT   iMax,           //   maximum   value   in   trackbar   range     
              UINT   iSelMin,     //   minimum   value   in   trackbar   selection     
              UINT   iSelMax)     //   maximum   value   in   trackbar   selection     
      {     
              hwndSlider   =   CreateWindowEx(     
                      0,                                                           //   no   extended   styles     
                      TRACKBAR_CLASS,                                 //   class   name     
                      "Trackbar   Control",                         //   title   (caption)     
                      WS_CHILD   |   WS_VISIBLE   |     
                      TBS_AUTOTICKS   |   TBS_ENABLESELRANGE,     //   style     
                      10,   10,                                                 //   position     
                      200,   30,                                               //   size     
                      hwndDlg,                                               //   parent   window     
                      (HMENU)IDC_POS_SLIDER,                           //   control   identifier     
                      g_hinst,                                               //   instance     
                      NULL                                                       //   no   WM_CREATE   parameter     
                      );     
          
              SendMessage(hwndSlider,   TBM_SETRANGE,     
                      (WPARAM)   TRUE,                                       //   redraw   flag     
                      (LPARAM)   MAKELONG(iMin,   iMax));     //   min.   &   max.   positions     
              SendMessage(hwndSlider,   TBM_SETPAGESIZE,     
                      0,   (LPARAM)   4);                                     //   new   page   size     
          
              SendMessage(hwndSlider,   TBM_SETSEL,     
                      (WPARAM)   FALSE,                                     //   redraw   flag     
                      (LPARAM)   MAKELONG(iSelMin,   iSelMax));     
              SendMessage(hwndSlider,   TBM_SETPOS,     
                      (WPARAM)   TRUE,                                       //   redraw   flag     
                      (LPARAM)   iSelMin);     
          
              SetFocus(hwndSlider);     
          
              return   hwndSlider;     
      }
      

  2.   

    MFC有的函数,API中很多都没有,很多操作都是通过消息实现的。如1楼的code,SetRange实际是用TBM_SETRANGE消息实现的。
    MSDN上都有相关的信息。
      

  3.   

    好了,
    将滑动条拖动到对话框上后,不需要自己写创建函数
    只管想滑动条发送消息即可,因为Windows中有内定
    的滑动条处理函数。
       谢谢各位,帮我解决了个大问题,而且受到了启发,
    结贴。