您的位置:首页 > 其它

Spin Control 和 Slider Control 的用法

2011-11-29 22:14 381 查看
Spin Control:
 Spin Control比较简单,简单介绍消息处理如下:
afx_msg void OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult);

ON_NOTIFY(UDN_DELTAPOS, IDC_SPIN1, &CMy2005DlgDlg::OnDeltaposSpin1)

void CMy2005DlgDlg::OnDeltaposSpin1(NMHDR *pNMHDR, LRESULT *pResult)

{

 LPNMUPDOWN pNMUpDown = reinterpret_cast<LPNMUPDOWN>(pNMHDR);

 // TODO: 在此添加控件通知处理程序代码

 *pResult = 0;

}
点击上下箭头时,可根据pNMUpDown的内容判定用户的操作,含义如下:
typedef struct _NM_UPDOWN {

  NMHDR hdr;

  int iPos;

  int iDelta;

} NMUPDOWN, FAR* LPNMUPDOWN;

Members

hdr 

NMHDR structure that contains additional information about the message. 

iPos 

Signed integer value that represents the up-down control's current position. 

iDelta 

Signed integer value that represents the proposed change in the up-down control's position. 

  

Slider Control:
1)加入控件变量:

CSliderCtrl m_sliderCtrl; 

DDX_Control(pDX, IDC_SLIDER1, m_sliderCtrl);

2)事件处理

afx_msg void OnNMCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult);

ON_NOTIFY(NM_CUSTOMDRAW, IDC_SLIDER1, &CMy2005DlgDlg::OnNMCustomdrawSlider1)

void CMy2005DlgDlg::OnNMCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult)

{

 LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);

 // TODO: 在此添加控件通知处理程序代码

 int pos = m_sliderCtrl.GetPos();

 *pResult = 0;

}
3)常用控制
//Sets the range (minimum and maximum positions) for the slider in a slider control.

 m_sliderCtrl.SetRange(0,100,1);
//Sets the current position of the slider in a slider control.

 m_sliderCtrl.SetPos(20);
//Sets the position of a tick mark in a slider control.

     m_sliderCtrl.SetTic(30);
// Sets the frequency with which tick marks are displayed in a slider.

     m_sliderCtrl.SetTicFreq(10);
注意:要显示刻度线,Auto Ticks要为TRUE, Tick Marks要为TRUE
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  integer structure struct