怎样让微调按钮增量为0.1 今天我用MFC编程:在对话框中添加编辑框IDC_EDIT及微调按钮IDC_SPIN,调用绑定函数SetBuddy()将这两个控件绑定后,我发现,每次单击,增量为1,查看所有的函数,却没有发现可设置增量为0.1,请问各位高手,我该怎么办?谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给IDC_SPIN1添加UDN_DELTAPOS消息映射OnDeltaposSpin1(NMHDR* pNMHDR, LRESULT* pResult) { NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR; TCHAR szText[MAX_INPUT]; GetDlgItemText(IDC_EDIT,szText,MAX_INPUT); sprintf(szText,"%.1f",atof(szText)+ 0.1 * pNMUpDown->iDelta); SetDlgItemText(IDC_EDIT,szText); *pResult = 1;//prevent the change } 自定义一个CSliderCtrl类,增减0.1在这个类中转换成乘以10就可以了 想了一个小时出结果在对话框添加微调按钮IDC_MYSPIN与编辑框控件IDC_MYEDIT,为编辑框控件关联一个CString型的变量m_myedit,在CMyDlg::OnInitDialog()中添加代码: m_myedit="8.7"; //初始化编辑框控件 UpdateData(FALSE); 为控件IDC_MYSPIN添加事件UDN_DELTAPOS的响应函数OnDeltaposMyspin()编辑代码如下:void CMyDlg::OnDeltaposMyspin(NMHDR* pNMHDR, LRESULT* pResult) { NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR; // TODO: Add your control notification handler code here UpdateData(TRUE); //若人工修改编辑框中的数值,这句就起作用 double f=atof(m_myedit); f-=0.1*pNMUpDown->iDelta; m_myedit.Format("%.1f",f); UpdateData(FALSE); *pResult = 0;} 如何设置CListBox字体大小?并且和父窗口字体大小不一样! MSDN中的示例似乎是VC6的,在VS2008(2003应该也类似)该如何走? 协同编辑器多光标的实现问题 VC怎样检测传真机信息? 区域网内通过网关把数据包发送到外网的原理? 请问大家VC++与3DS Max的问题 请问如何绘制函数的曲线 请问:CSocket的Create函数中的ASSERT异常是什么原因? 一个点子10~100分! 对话框为什么总挡着标签控件?? 为什么GetTextExtentPoint调用之前要给DC设置字体它在会准确计算呢? evc4.0下图标的打印
OnDeltaposSpin1(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
TCHAR szText[MAX_INPUT];
GetDlgItemText(IDC_EDIT,szText,MAX_INPUT);
sprintf(szText,"%.1f",atof(szText)+ 0.1 * pNMUpDown->iDelta);
SetDlgItemText(IDC_EDIT,szText);
*pResult = 1;//prevent the change
}
在对话框添加微调按钮IDC_MYSPIN与编辑框控件IDC_MYEDIT,为编辑框控件关联一个CString型的变量m_myedit,在CMyDlg::OnInitDialog()中添加代码:
m_myedit="8.7"; //初始化编辑框控件
UpdateData(FALSE);
为控件IDC_MYSPIN添加事件UDN_DELTAPOS的响应函数OnDeltaposMyspin()编辑代码如下:
void CMyDlg::OnDeltaposMyspin(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
UpdateData(TRUE); //若人工修改编辑框中的数值,这句就起作用
double f=atof(m_myedit);
f-=0.1*pNMUpDown->iDelta;
m_myedit.Format("%.1f",f);
UpdateData(FALSE);
*pResult = 0;
}