WTL
とりあえず、ウィンドウスプリットしてみたり、DDXしてみたりしてますが、使いやすいですね。
class CNewProjectDlg : public CDialogImpl< CNewProjectDlg > , public CWinDataExchange< CNewProjectDlg > { public: enum { IDD = IDD_NEW_PROJECT, }; CNewProjectDlg(); virtual ~CNewProjectDlg(); // DDXマップ BEGIN_DDX_MAP( CNewProjectDlg ) DDX_CONTROL_HANDLE( IDC_PROJECTNAME, m_cProjectName ) DDX_CONTROL_HANDLE( IDC_PROJECTPATH, m_cProjectPath ) DDX_TEXT( IDC_PROJECTNAME, m_sProjectName ) DDX_TEXT( IDC_PROJECTPATH, m_sProjectPath ) END_DDX_MAP() // 公開メンバ CEdit m_cProjectName; CEdit m_cProjectPath; CString m_sProjectName; CString m_sProjectPath; // メッセージマップ BEGIN_MSG_MAP( CNewProjectDlg ) MESSAGE_HANDLER( WM_INITDIALOG, OnInitDialog ) COMMAND_ID_HANDLER( IDOK, OnOk ) COMMAND_ID_HANDLER( IDCANCEL, OnCancel ) END_MSG_MAP() // メッセージハンドラ LRESULT OnInitDialog( UINT, WPARAM, LPARAM, BOOL& ); LRESULT OnOk( WORD, WORD, HWND, BOOL& ); LRESULT OnCancel( WORD, WORD, HWND, BOOL& ); };
といった感じでWindowsプログラミング。マクロがあるけど、まぁぱっと見わかりやすいし、ご愛嬌。MFCには二度と帰れないような気がします。