![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
VisualC++6.0问题CFrameWnd是基类,派生类CMainFrame的参数UINT nFlags,CPoint point传递给基类有什么用
#include<afxwin.h>classCHelloApp:publicCWinApp{public:virtualBOOLInitInstance();};CHe...
#include <afxwin.h>
class CHelloApp:public CWinApp
{public:virtual BOOL InitInstance(); };
CHelloApp theApp;
class CMainFrame:public CFrameWnd
{public:CMainFrame()
{ Create(NULL,"我的窗口",WS_OVERLAPPEDWINDOW,CRect(0,0,400,300));}
protected:
afx_msg void OnLButtonDown(UINT nFlags,CPoint point);
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
void CMainFrame::OnLButtonDown(UINT nFlags,CPoint point)
{MessageBox("你好,我的Visual C++世界!","问候",0);
CFrameWnd::OnLButtonDown(nFlags,point); //CFrameWnd是基类,派生类CMainFrame的参数
//(UINT nFlags,CPoint point)
//传递给基类有什么用
//解释一下CFrameWnd::OnLButtonDown(nFlags,point);
}
BOOL CHelloApp::InitInstance()
{m_pMainWnd=new CMainFrame();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;} 展开
class CHelloApp:public CWinApp
{public:virtual BOOL InitInstance(); };
CHelloApp theApp;
class CMainFrame:public CFrameWnd
{public:CMainFrame()
{ Create(NULL,"我的窗口",WS_OVERLAPPEDWINDOW,CRect(0,0,400,300));}
protected:
afx_msg void OnLButtonDown(UINT nFlags,CPoint point);
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)
ON_WM_LBUTTONDOWN()
END_MESSAGE_MAP()
void CMainFrame::OnLButtonDown(UINT nFlags,CPoint point)
{MessageBox("你好,我的Visual C++世界!","问候",0);
CFrameWnd::OnLButtonDown(nFlags,point); //CFrameWnd是基类,派生类CMainFrame的参数
//(UINT nFlags,CPoint point)
//传递给基类有什么用
//解释一下CFrameWnd::OnLButtonDown(nFlags,point);
}
BOOL CHelloApp::InitInstance()
{m_pMainWnd=new CMainFrame();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;} 展开
展开全部
nFlags 传递虚拟键信号:当你按左键的同时,你可能还按下了 CTRL键,或SHIFT 键,。。。,通过数值对比 MK_CONTROL ,MK_SHIFT ,MK_LBUTTON ,MK_MBUTTON MK_RBUTTON
可作判断。
CPoint point 传递 光标 坐标数值。当按左键瞬间,光标 坐标在窗口何处
可作判断。
CPoint point 传递 光标 坐标数值。当按左键瞬间,光标 坐标在窗口何处
追问
我的问题是参数(UINT nFlags,CPoint point)传递给CMainFrame::OnLButtonDown(UINT nFlags,CPoint point)后,为什么又要传递给
CFrameWnd::OnLButtonDown(nFlags,point);
追答
前面的事件信息传递工作完成后,该OnLButtonDown(nFlags,point);干活了。
OnLButtonDown(nFlags,point); 的作用是 事件响应函数,也就是说,根据得到的事件信息(nFlags,point 的 当前值)做什么应对的计算,显示,更新等。
![](https://ecmc.bdimg.com/public03/b4cb859ca634443212c22993b0c87088.png)
2024-08-21 广告
MarsCode 为你提供了编程助手和 IDE 来协助你完成编程任务。 MarsCode 编程助手提供以智能代码补全为代表的 AI 功能。它支持主流的编程语言和 IDE,在开发过程中提供单行代码或整个函数的编写建议。此外,它还支持代码解释、...
点击进入详情页
本回答由MarsCode提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询