2

ウィザードを使用して、MS VS 2010 で新しい MFC プロジェクトを作成しました (重要な場合は単一のドキュメントを選択しました)。次に、ダイアログ ボックスを作成し、ツールボックスから新しいスライダーをドラッグしました。VSのウィザードを使用して(ダイアログを右クリック->クラスを追加)、ダイアログのクラスを作成しましたMyDialog. 次に、VS のウィザードを使用して、スライダーに変数を追加しました。

だから今、私のMyDialogクラスには があり、CSliderCtrlそれを機能させることができません。SetRange()and\or SetPos()inを使用しようとしまし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;
}

誰でも私を助けてもらえますか?

4

1 に答える 1

0

あなたが示したコードから、この重要な行を見逃しています。

       CDialogEx::OnInitDialog();

上記の行の後に SetRange および SetPos 呼び出しを追加する必要があります。

于 2016-04-29T15:21:21.093 に答える