MFCプログラマーの「MFC」ってなんですか?
Visual C++ によって実装された Microsoft のクラスライブラリ Microsoft Foundation Class です。
- Microsoft Foundation Class - Wikipedia
- Visual Studio 2017 Visual C++ による MFC デスクトップアプリ開発 (Dialog Base) - Qiita
要点をまとめてみると、
- (過去).NET Framework 登場前は Windows アプリ開発の主役
- (現在) MFC の新規開発はもうないでしょう
- (未来)古いアプリを流用したり、保守したりということはときどきある
- .NET での開発が主流となって、 MFC を扱える人もどんどん減っている
MFC に長く触れていると、「C++ 開発者です!」と言い切れない歯がゆさがあったりします。(ラッパークラスばかり使うことになるので、標準C++へのキャッチアップが疎くなるような気がするからです)
ダイアログベースアプリのイニシャライズの例
BOOL CMFCApplicationDlg::OnInitDialog()
{
CDialog::OnInitDialog();
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);
}
}
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
return TRUE;
}
CDialog
、CMenu
、CString
など、Cxxxx
クラスの prefix をもったものを扱いながら開発をすすめていきます。
MFC の良き
Document View アーキテクチャーを採用していて、メッセージパッシングでビューとドキュメントがやり取りするようになっています。
MFCの作法にしたがうかぎり、ビューとドキュメントが疎結合で見通しのよいコードベースになります。
MFC のツラみ
CObject から派生したクラスの学習サンクコストの高さ
Author And Source
この問題について(MFCプログラマーの「MFC」ってなんですか?), 我々は、より多くの情報をここで見つけました https://qiita.com/hirocueki2/items/3f66ff4d99861b331652著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .