Mfc-progress-control

提供:Dev Guides
移動先:案内検索

MFC-進捗管理

プログレスバーコントロール*は、アプリケーションが長時間の操作の進行状況を示すために使用できるウィンドウです。 これは、左から右に徐々に塗りつぶされる長方形で構成され、操作の進行に合わせてシステムのハイライトカラーが表示されます。 *CProgressCtrl クラスで表されます。

これがCProgressCtrlクラスのメソッドのリストです-

Sr.No. Name & Description
1

Create

プログレスバーコントロールを作成し、CProgressCtrlオブジェクトに添付します。

2

CreateEx

指定されたWindows拡張スタイルでプログレスコントロールを作成し、CProgressCtrlオブジェクトに添付します。

3

GetBarColor

現在の進行状況バーコントロールの進行状況インジケーターバーの色を取得します。

4

GetBkColor

現在の進行状況バーの背景色を取得します。

5

GetPos

プログレスバーの現在の位置を取得します。

6

GetRange

プログレスバーコントロールの範囲の下限と上限を取得します。

7

GetState

現在の進行状況バーコントロールの状態を取得します。

8

GetStep

現在のプログレスバーコントロールのプログレスバーのステップの増分を取得します。

9

OffsetPos

プログレスバーコントロールの現在の位置を指定された増分で進め、バーを再描画して新しい位置を反映します。

10

SetBarColor

現在の進行状況バーコントロールの進行状況インジケーターバーの色を設定します。

11

SetBkColor

進行状況バーの背景色を設定します。

12

SetMarquee

現在のプログレスバーコントロールのマーキーモードをオンまたはオフにします。

13

SetPos

進行状況バーコントロールの現在の位置を設定し、新しい位置を反映するようにバーを再描画します。

14

SetRange

プログレスバーコントロールの最小および最大範囲を設定し、新しい範囲を反映するようにバーを再描画します。

15

SetState

現在の進行状況バーコントロールの状態を設定します。

16

SetStep

プログレスバーコントロールのステップの増分を指定します。

17

StepIt

プログレスバーコントロールの現在の位置をステップ単位で進め(SetStepを参照)、新しい位置を反映するようにバーを再描画します。

新しいMFCアプリケーションを作成しましょう。

  • ステップ1 *-テキストコントロールのIDをに変更し、キャプションを削除します。
  • ステップ2 *-ツールボックスからProgress Controlをドラッグします。
  • ステップ3 *-静的テキストコントロールの値変数を追加します。

進捗管理

  • ステップ4 *-プログレスコントロールのコントロール変数を追加します。

進捗管理

  • ステップ5 *-OnInitDialog()の実装です
BOOL CMFCProgressControlDlg::OnInitDialog() {
   CDialogEx::OnInitDialog();

  //Add "About..." menu item to system menu.

  //IDM_ABOUTBOX must be in the system command range.
   ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
   ASSERT(IDM_ABOUTBOX < 0xF000);

   CMenu* pSysMenu = GetSystemMenu(FALSE);
   if (pSysMenu != NULL) {
      BOOL bNameValid;
      CString strAboutMenu;
      bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
      ASSERT(bNameValid);
      if (!strAboutMenu.IsEmpty()) {
         pSysMenu -> AppendMenu(MF_SEPARATOR);
         pSysMenu -> AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
      }
   }

  //Set the icon for this dialog. The framework does this automatically
  //when the application's main window is not a dialog
   SetIcon(m_hIcon, TRUE);     //Set big icon
   SetIcon(m_hIcon, FALSE);    //Set small icon

  //TODO: Add extra initialization here
   m_progCtrl.SetRange(0,100);

   for (int i = 0; i <= 100; i++) {
      m_progCtrl.SetPos(i);
   }

   return TRUE;//return TRUE unless you set the focus to a control
}
  • ステップ6 *-上記のコードをコンパイルして実行すると、次の出力が表示されます。

進捗管理