if((wParam& MK_LBUTTON) && (wParam& MK_CONTROL)) {
dc.Ellipse(m_X0,m_Y0,m_X1,m_Y1); }
if((wParam& MK_LBUTTON) && (wParam& MK_SHIFT)) {
dc.Rectangle(m_X0,m_Y0,m_X1,m_Y1); }
m_X1 = LOWORD(lParam); m_Y1 = HIWORD(lParam);
dc.SelectStockObject(BLACK_PEN); if(wParam& MK_CONTROL) {
dc.Ellipse(m_X0,m_Y0,m_X1,m_Y1); }
if(wParam& MK_SHIFT) {
dc.Rectangle(m_X0,m_Y0,m_X1,m_Y1); }
return 0; */
m_X0=m_X1= LOWORD(lParam); m_Y0=m_Y1= HIWORD(lParam); return 0; }
LRESULT CDemoWnd::OnLButton(WPARAM wParam, LPARAM lParam) {
return 0; }
BOOL CDemoApp::InitInstance() {
CDemoWnd *pFrame = new CDemoWnd(); pFrame->Create(0,_T(\鼠标绘图程序\ pFrame->ShowWindow(m_nCmdShow); this->m_pMainWnd = pFrame; return TRUE; }
头文件 Demo.h 代码
#include
class CDemoWnd: public CFrameWnd {
public:
int m_X0; int m_Y0; int m_X1; int m_Y1; protected:
LRESULT OnLButtonDown(WPARAM wParam, LPARAM lParam); LRESULT OnMouseMove(WPARAM wParam, LPARAM lParam); LRESULT OnLButtonUp(WPARAM wParam, LPARAM lParam); LRESULT OnLButton(WPARAM wParam, LPARAM lParam); DECLARE_MESSAGE_MAP() };
class CDemoApp: public CWinApp {
public:
BOOL InitInstance(); };
CDemoApp ThisApp; // 全局应用程序对象
【实验结果】
(3) 总结实验的心得体会,实验中遇到的困难以及解决的方法等。
在上课时,老师的上机演示,让我对MFC消息映射有了初步的了解,也让我对编程产生了兴趣。本次实验考查了MFC消息映射编程,我熟悉了Visual Studio的开发环境,同时也掌握了消息映射机制的基本原理和手工添加消息映射的方法。在实验过程中也遇到了一些困难,通过询问同学,和查阅资料,让我对MFC编程也有了进一步的认知,同时也使我完成了本次实验。