网站大量收购闲置独家精品文档,联系QQ:2885784924

第八章 vc++MFC.ppt

  1. 1、本文档共120页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * // button3.cpp #include afxwin.h #define IDB_BUTTON 100 // Declare the application class class CButtonApp : public CWinApp { public: virtual BOOL InitInstance(); }; // Create an instance of the application class CButtonApp ButtonApp; // Declare the main window class class CButtonWindow : public CFrameWnd { CButton *button; public: CButtonWindow(); afx_msg void HandleButton(); afx_msg void OnSize(UINT, int, int); DECLARE_MESSAGE_MAP() }; * * // A message handler function void CButtonWindow::HandleButton() { MessageBeep(-1); } // A message handler function void CButtonWindow::OnSize(UINT nType, int cx, int cy) { CRect r; GetClientRect(r); r.InflateRect(-20,-20); button-MoveWindow(r); } // The message map BEGIN_MESSAGE_MAP(CButtonWindow, CFrameWnd) ON_BN_CLICKED(IDB_BUTTON, HandleButton) ON_WM_SIZE() END_MESSAGE_MAP() // The InitInstance function is called once // when the application first executes BOOL CButtonApp::InitInstance() { m_pMainWnd = new CButtonWindow(); m_pMainWnd-ShowWindow(m_nCmdShow); m_pMainWnd-UpdateWindow(); return TRUE; } * * // The constructor for the window class CButtonWindow::CButtonWindow() { CRect r; // Create the window itself Create(NULL, CButton Tests, WS_OVERLAPPEDWINDOW, CRect(0,0,200,200)); // Get the size of the client rectangle GetClientRect(r); r.InflateRect(-20,-20); // Create a button button = new CButton(); button-Create(Push me, WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, r, this, IDB_BUTTON); } * * 为了理解上面的代码,从窗口的消息映射开始。你会发现入口ON_WM_SIZE。该入口表示消息映射是对来自CButtonWindow对象的变尺寸消息发生响应。变尺寸消息是当用户改变窗口的大小时产生的。该消息来自窗口本身,而不是作为ON_COMMAND消息由按钮向其父窗口发送的。这是因为窗口框架不是子窗口。 ??? 要注意的是消息映射中的ON_WM_SIZE入口没有参数。你在MFC文档中CWnd类,消息映射中的ON_WM_SIZE入口总是调用OnSize函数,并且该函数必须接收三个参数。OnSize函数必须是消息映射所属类的成员函数,并且该函数必须用afx_msg来说明(正如上面在CButtonWindow的定义中所见到的一样)。 * * 如果你查看MFC文档,就会发现CWnd中有近100名为“On...”的函数。CWnd::OnSize是其中之一。所有这些函数都在消息映射中有形如ON_WM_对应的标签。例如,ON_WM_SIZE对应OnSize。ON_WM_入口不接收任何参数,如ON_BN_CLICKED一样。参数是假设的并自动传

文档评论(0)

xiaofei2001129 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档