Skip to content

sysfce2/MFC_Progress-Dialog

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

プログレスダイアログの実装

キャンセル可能な処理と、それを呼び出し、進行中にはプログレスバーを表示するクラス群を定義します。

制約事項

  • VS2013で作成したプロジェクトです。
  • C++-11の非同期処理機能 (std::async, std::future) を使っています。
  • 処理完了後にプログレスダイアログを閉じさせるために、独自のメッセージ(WM_CLOSE_PROGRESS_DIALOG)を定義しています → stdafx.h

設計

  • クラス図・シーケンス図
  • コンセプト実装部分 (流用するもの)
    • ICancelable
    • CancelableProcessBase
    • CProgressDialog
  • サンプル実装部分 (捨てて良いもの)
    • ConcreteProcess
    • CProgressDialogDlg
    • CProgressDialogApp

利用方法

  1. CancelableProcessBaseから派生させた処理クラスを定義する
  2. 上記派生クラスのDoImpl()メソッドを実装する (適宜ShouldCancel()を使い、UI側からキャンセル要求が来ていないか確認すること)
  3. 処理させたいタイミングで、上記クラスのインスタンスを生成する
  4. CProgressDialogクラスのインスタンスを生成する (コンストラクタに、上記インスタンスを渡す)
  5. DoModal()する
  6. DoModal()の戻り値がIDOKかどうかにより、正常終了 or 異常終了に対応した後処理を実行する

参考にしたサイト

About

Implementing a progress dialog

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 97.7%
  • C 2.3%