续前面贴子SpinButton还有个疑问

d383137359 2010-05-11 03:48:37

连接到前面帖子
http://topic.csdn.net/u/20100511/10/e3f8d302-604d-4899-8377-45f6bb05c8bc.html


if(pScrollBar->GetDlgCtrlID() == IDC_SPIN1)
{
CString strText(_T(""));
strText.Format(_T("%d"), nPos);
SetDlgItemText(IDC_EDIT1, strText);
}

我用上面这方法比较好实现,只需要控件ID即可。这样子有一个新问题:如果我开始的 EDIT 控件中有数值,它会把EDIT中的数值赋为 0 然后才开始加

还有,这pScrollBar可以改为点上是++1 ,点下是 --1吗?这样子好理解一点
...全文
161 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
不需要加成员量,直接转指针就可以
((CSpinButtonCtrl*)GetDlgItem(IDC_SPIN1))->
  • 打赏
  • 举报
回复
和初值(CSpinButtonCtrl::SetPos32())。
  • 打赏
  • 举报
回复
首先适用Spin,一定要设置值域,不然滚动方向会是反的。

如果用内置机制,则:
① 保证Edit和Spin的Tab键走位顺序相邻,且Spin的位置在后。
② Spin启用Auto Buddy、Set Buddy Integer属性,当然一般Alignment选右齐。
③ 在代码中为Spin设置值域(CSpinButtonCtrl::SetRange32())和初值(CSpinButtonCtrl::SetRange32())。
(不需要其它任何处理,包括VSCROLL消息)

楼主的问题,应该是没有设置初值。
向立天 2010-05-15
  • 打赏
  • 举报
回复
d383137359 2010-05-15
  • 打赏
  • 举报
回复
哎 没有人回答 问题没解决
d383137359 2010-05-13
  • 打赏
  • 举报
回复
高手解答一下呢、
d383137359 2010-05-12
  • 打赏
  • 举报
回复
加减功能能实现

我现在的情况是。不管我点加减。总是从 0 开始
而我要达到的效果是。取出来是多少就是多少。 开始加减

我的VSCROLL中代码是这样的

if(pScrollBar->GetDlgCtrlID() == IDC_SPIN1)
{
CString strText(_T(""));
strText.Format(_T("%d"), nPos);
SetDlgItemText(IDC_EDIT1, strText);
}

这样子只实现了加减。不能实现取值出来加减。还需怎么做
Eleven 2010-05-12
  • 打赏
  • 举报
回复
你的Spin控件,在它的属性上勾上Set buddy integer
d383137359 2010-05-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gushleo 的回复:]
额 建议 直接加个EDIT 加个SPIN
让它们自动结伴 2个的tab顺序 edit 在前 spin 在后
然后 设置视频控件的 autobuddy 和set buddy integer
然后为spin空间添加控制变量m_spinctrl 注意类型是cspinbuttonctrl
然后在OnInitDialog()里
加上m_spinctrl.SetRange(0,xx);……
[/Quote]
加减功能 能实现,问题是我文本框里如果开始就有个40,我执行微调控件时,就不是41,42,43,。。。
而是1,2,3,。。。。不合道理呀。应该是41,42,43,。。。。。
Gushleo 2010-05-11
  • 打赏
  • 举报
回复
额 建议 直接加个EDIT 加个SPIN
让它们自动结伴 2个的tab顺序 edit 在前 spin 在后
然后 设置视频控件的 autobuddy 和set buddy integer
然后为spin空间添加控制变量m_spinctrl 注意类型是cspinbuttonctrl
然后在OnInitDialog()里
加上m_spinctrl.SetRange(0,xx);设置范围
你再试试加减是否正常
d383137359 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cometnet 的回复:]
引用楼主 d383137359 的回复:
如果我开始的 EDIT 控件中有数值,它会把EDIT中的数值赋为 0 然后才开始加


WM_INITDIALOG时先给IDC_SPIN1赋值
[/Quote]
想想先,还不知道怎么弄
邓学彬 2010-05-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 d383137359 的回复:]
如果我开始的 EDIT 控件中有数值,它会把EDIT中的数值赋为 0 然后才开始加
[/Quote]

WM_INITDIALOG时先给IDC_SPIN1赋值

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧