WindowsデスクトップアプリのUIを刷新する際の選択肢について


大規模な業務系のデスクトップアプリを作成しています、開発はMFC、VC++、Win32といった古い技術を使用しています。  
気になっているのはUIで、内部処理は旧資産を活用し、UIなどの見た目をモダンなフラットデザインにし現代的なWindowsアプリに近づけたいと思います。

UIを刷新する上で、何がよい選択肢なのでしょうか？  
自分が考えているは、UIはWPFで開発（C#)、内部処理はVC++,C++/CLI,MFCなどの旧資産を活かせる開発




範囲が広すぎるかもしれません。  
やや答えづらいのですが、何かの参考になるかもしれないので、限定的なケースでの説明をしてみます。

また、ハイブリッドな構成ではなくMFCで作成されている場合で、それをカスタマイズするケースのみに限定させてもらいます。

(1)CWinAPPの派生クラスを使用している場合。  
CWinAppExクラスを使用する様に変更します。

(2)CMDIFrameWndの派生クラスを使用している場合。  
同様にCMDIFrameWndExを使用します。

以上の作業はMFCアプリケーションウィザードで雛型を作って既存の機能を実装する方が良いと考えられます。

(3)コモンコントロールを使用していない場合  
InitCommonControlsEx()を使用して新しいコモンコントロールを使用することを指定します。  
自分はICC_WIN95_CLASSESを指定していますが、  
Windows10上では自動的にフラットなデザインになります。

(4)メッセージボックスMessageBox()をタスクダイアログ=CTaskDialogに変更する。  
メッセージボックスが陳腐に感じる場合に試してみる価値があります。

既に、ここまでやってしまっている場合には、ハイブリッドを検討する段階にあるかもしれません。




範囲が広すぎるかもしれません。  
やや答えづらいのですが、何かの参考になるかもしれないので、限定的なケースでの説明をしてみます。

また、ハイブリッドな構成ではなくMFCで作成されている場合で、それをカスタマイズするケースのみに限定させてもらいます。

(1)CWinAPPの派生クラスを使用している場合。  
CWinAppExクラスを使用する様に変更します。

(2)CMDIFrameWndの派生クラスを使用している場合。  
同様にCMDIFrameWndExを使用します。

以上の作業はMFCアプリケーションウィザードで雛型を作って既存の機能を実装する方が良いと考えられます。

(3)コモンコントロールを使用していない場合  
InitCommonControlsEx()を使用して新しいコモンコントロールを使用することを指定します。  
自分はICC_WIN95_CLASSESを指定していますが、  
Windows10上では自動的にフラットなデザインになります。

(4)メッセージボックスMessageBox()をタスクダイアログ=CTaskDialogに変更する。  
メッセージボックスが陳腐に感じる場合に試してみる価値があります。

既に、ここまでやってしまっている場合には、ハイブリッドを検討する段階にあるかもしれません。

