如何创建MFC CSliderCtrl?

时间:2013-11-01 00:12:08

标签: c++ mfc

我使用他们的向导在MS VS 2010中创建了一个新的MFC项目(如果重要,我选择单个文档)。然后,我创建了一个对话框,并从工具箱中拖动了一个新的滑块。使用VS的向导(右键单击对话框 - > gt;添加类)我为我的对话框创建了一个名为MyDialog的类。接下来,我使用VS的向导将一个变量添加到滑块。

所以,现在,在我的MyDialog课程中,我有一个CSliderCtrl,我无法让它发挥作用。 我尝试在SetRange()中使用SetPos()和\或OnInitDialog()但它们会崩溃以编程并抛出异常。

如果我在CSliderCtrl中创建一个新的OnInitDialog()并将其设置为SetRange(),那么它确实有用。

BOOL MyDialog::OnInitDialog()
{
    CSliderCtrl *TrackBar = new CSliderCtrl;

    TrackBar->Create(WS_CHILD | WS_VISIBLE,CRect(20, 20, 60, 280),this, IDC_SLIDER1);
    int min,max;
    TrackBar->GetRange(min,max);
    TrackBar->SetPos(10);
    return TRUE;
}

但这不起作用:

BOOL MyDialog::OnInitDialog()
{
    m_mySlider.SetRange(1,100); //sending true\false doesn't matter
    return TRUE;
}

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

从您显示的代码中,您错过了这条重要的路线,

       CDialogEx::OnInitDialog();

您应该在上一行之后添加SetRange和SetPos调用。