对话框初始化无效??~~

old__face 2009-06-09 10:55:45
初学MFC,在对话框的Spin控件中遇到了问题~~
我新建了一个菜单项,为其添加了一个消息处理程序,创建了一个对话框,如下:

void CMainFrame::Onmessage()
{
// TODO: 在此添加命令处理程序代码
CDialog dlg(IDD_DIALOG1);
dlg.DoModal();
}

然后在对话框中放置了Spin控件和一个Edit控件,控件属性什么的都设置好了,然后属性->重写,对其添加初始化函数OnInitDialog(),如下

BOOL message::OnInitDialog()
{
CDialog::OnInitDialog();

// TODO: 在此添加额外的初始化
CSpinButtonCtrl *CD_Spin=(CSpinButtonCtrl *)GetDlgItem(IDC_SPIN1);
CD_Spin.SetRange(-100, 100);
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}

调试中可以通过Spin的+/-按钮改变Edit中的值,只不过是默认的0~100的范围和+/-是颠倒的。
也就是上面的初始化中无论是设置范围还是设置当前位置等等的都无效,Spin控件还是默认的设置。

找了好久都解决不了,请问到底是哪个地方有错?或者是漏了什么?

另,我用的是VS2008。我用MFC直接生成的对话框中添加相同的初始化代码就可以,但是在菜单中创建的对话框就不行。。。
他们还有哪个细节不同?
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
oldmanzhao 2009-06-09
  • 打赏
  • 举报
回复
是这样:((CSpinButtonCtrl*)GetDlgItem(IDC_SPIN1))->SetRange(0, 800);
oldmanzhao 2009-06-09
  • 打赏
  • 举报
回复
在程序里设置一下范围,从小到大:GetDlgItem(IDC_SPIN1)->SetRange(0,100);
old__face 2009-06-09
  • 打赏
  • 举报
回复
不好意思~~发了两遍~~

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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