一程序入口:
class CSetupApp : public CWinApp
{
public:
CSetupApp();
// 重载InitInstance();
public:
virtual BOOL InitInstance();
}
MFC对这一系列的过程进行了封装。提供给编程人员的第一个裸露程序入口就是CWinApp的InitInstance(),其实程序的入口依然是WinMain()函数。
二:绑定资源ID
1. 绑定资源Dialog
enum { IDD = IDD_DIALOG1 };
其中的 IDD_DIALOG1就是对应的对话框资源的ID,其宏定义可以在resource.h文件中找到
源文件(.rc)里也必须使用这个IDD_DIALOG1对使用的对话框资源进行描述
2. 绑定控件ID到变量
CBmpTextButton m_BtnNext
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV
void CSceneWelcome::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_NEXT, m_BtnNext);
}
可以进行控制 如m_BtnNext.SetWindowText(“”next“”)
m_BtnNext.SetWindowPos (NULL, (DLG_WIDTH-131)/2, 660, 131, 35, SWP_NOZORDER|SWP_SHOWWINDOW);
三:显示其他窗体
1:模式弹出,此时后面的窗口不能被调用
dlgWelcome.DoModal(); //会自动执行OnInitDialog函数。
class CSceneWelcome : public Cdialog
{
virtual BOOL OnInitDialog(); //重载OnInitDialog(),用于初始化窗体
}
DoModal返回值:
OnOK(); IDOK
OnCancel(); IDCANCEL
2:非模式对话框
dlgWelcome.Create (IDD_WECLOME_SCENE, this);
dlgWelcome.ShowWindow(SW_SHOW);
三:消息响应函数
1:#define MYWM_GOTO_MODEL (WM_USER + 100) //某公共头文件中定义
2:
类中声明 message:afx_msg LRESULTOnGotoModel(WPARAM wParam, LPARAM lParam);
afx_msg为消息标志,它向系统声明:有消息映射到函数实现体
BEGIN_MESSAGE_MAP(CSetupDlg, CDialog) // 定义CsetupDlg中的消息映射,CSetupDlg是CDialog的子类,声明事件处理链
ON_WM_SYSCOMMAND()
ON_WM_PAINT() //如果在此声明的消息在CsetupDlg中没有提供消息处理函数,则在CDialog中寻找
ON_MESSAGE(MYWM_GOTO_MODEL, OnGotoModel) //自定义消息
ON_BN_CLICKED(IDC_CUSTOMSETUP_HELP_BTN, & CSceneWelcome::OnBnClickedHelpBtn) //鼠标点击事件
END_MESSAGE_MAP()
LRESULT CSetupDlg::OnGotoModel(WPARAM wParam, LPARAM lParam)
{
//处理
}
发送消息:GetParent()->SendMessage(MYWM_GOTO_MODEL);