MFC窗口函数讲解
Windows 程序入口点: WinMain
控制台程序入口点 : main
dll入口点 :DllMain
MFC入口点函数:InitInstance()
重写 Dlg 对话框中的WindowProc 函数进行消息拦截
debug--window--call satck 调用函数栈,也就是函数的调用栈
C多线程Dlg::C多线程Dlg(CWnd* pParent /*=NULL*/) : CDialog(C多线程Dlg::IDD, pParent)//构造函数 { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void C多线程Dlg::DoDataExchange(CDataExchange* pDX)//控件变量都声明在这里 { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(C多线程Dlg, CDialog)//消息映射列表 ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDOK, &C多线程Dlg::OnBnClickedOk) END_MESSAGE_MAP() BOOL C多线程Dlg::OnInitDialog()//初始化对话框的函数 { CDialog::OnInitDialog();//调用父类的方法进行对话框初始化 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 return TRUE; // 除非将焦点设置到控件,否则返回 TRUE } void C多线程Dlg::OnSysCommand(UINT nID, LPARAM lParam)//单击系统菜单项的时候会发送这个命令给函数 { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } void C多线程Dlg::OnPaint()//画东西的函数 { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0); // 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 绘制图标 dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } }

浙公网安备 33010602011771号