#include<afxwin.h>
class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
class CMainWnd:public CFrameWnd
{
protected:
afx_msg LRESULT Function1(WPARAM wParam,LPARAM lParam)
{
MessageBox(L"left");
return TRUE;
}
afx_msg LRESULT Function2(WPARAM wParam,LPARAM lParam)
{
MessageBox(L"right");
return 0;
}
DECLARE_MESSAGE_MAP();
};
BEGIN_MESSAGE_MAP(CMainWnd,CFrameWnd)
ON_MESSAGE(WM_LBUTTONDOWN,Function1)
ON_MESSAGE(WM_RBUTTONDOWN,Function2)
END_MESSAGE_MAP()
BOOL CMyApp::InitInstance()
{
CFrameWnd*p=new CFrameWnd;
p->Create(0,L"mfc");
p->ShowWindow(SW_NORMAL);
p->UpdateWindow();
AfxGetApp()->m_pMainWnd=p;
return TRUE;
}
CMyApp myapp;
11 个解决方案
#1
将函数定义写到消息声明表
DECLARE_MESSAGE_MAP();
之外去!
看你这代码乱的都不像MFC程序!全是手写的?
DECLARE_MESSAGE_MAP();
之外去!
看你这代码乱的都不像MFC程序!全是手写的?
#2
#include<afxwin.h>
class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
class CMainWnd:public CFrameWnd
{
public:
CMainWnd();
protected:
afx_msg void OnLButtonDown(UINT nFlag, CPoint point);
afx_msg void OnRButtonDown(UINT nFlag, CPoint point);
DECLARE_MESSAGE_MAP();
};
BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMainWnd;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
BEGIN_MESSAGE_MAP(CMainWnd,CFrameWnd)
ON_WM_LBUTTONDOWN()
ON_WM_RBUTTONDOWN()
END_MESSAGE_MAP()
CMainWnd::CMainWnd()
{
Create(NULL, _T("MFC"));
}
void CMainWnd::OnLButtonDown(UINT nFlag, CPoint point)
{
MessageBox(_T("left"));
}
void CMainWnd::OnRButtonDown(UINT nFlag, CPoint point)
{
MessageBox(_T("right"));
}
#3
囧。。。。。。
#4
感动,部长大人比我还睡得晚啊,看来真是十里万姬啊!
#5
写到外面也是一样啊,还是能运行但是不出来消息框。。。。。。
#6
谢谢您的解答,但是这个程序运行时出错了,
“ex41.exe 中的 0x00ead66a 处最可能的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突”
#7
先用向导生成开始吧,自己写的话开始的时候难度太大了
#8
有何高见?
#9
谢谢!
#10
楼主补下基础吧,不然人家回答了你的问题,你都看不明白
#11
多谢!我自己程序搞错了一行!解决了!谢谢各位,分数有限,不能全给了,见谅!
#1
将函数定义写到消息声明表
DECLARE_MESSAGE_MAP();
之外去!
看你这代码乱的都不像MFC程序!全是手写的?
DECLARE_MESSAGE_MAP();
之外去!
看你这代码乱的都不像MFC程序!全是手写的?
#2
#include<afxwin.h>
class CMyApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
class CMainWnd:public CFrameWnd
{
public:
CMainWnd();
protected:
afx_msg void OnLButtonDown(UINT nFlag, CPoint point);
afx_msg void OnRButtonDown(UINT nFlag, CPoint point);
DECLARE_MESSAGE_MAP();
};
BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMainWnd;
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return TRUE;
}
BEGIN_MESSAGE_MAP(CMainWnd,CFrameWnd)
ON_WM_LBUTTONDOWN()
ON_WM_RBUTTONDOWN()
END_MESSAGE_MAP()
CMainWnd::CMainWnd()
{
Create(NULL, _T("MFC"));
}
void CMainWnd::OnLButtonDown(UINT nFlag, CPoint point)
{
MessageBox(_T("left"));
}
void CMainWnd::OnRButtonDown(UINT nFlag, CPoint point)
{
MessageBox(_T("right"));
}
#3
囧。。。。。。
#4
感动,部长大人比我还睡得晚啊,看来真是十里万姬啊!
#5
写到外面也是一样啊,还是能运行但是不出来消息框。。。。。。
#6
谢谢您的解答,但是这个程序运行时出错了,
“ex41.exe 中的 0x00ead66a 处最可能的异常: 0xC0000005: 读取位置 0x00000000 时发生访问冲突”
#7
先用向导生成开始吧,自己写的话开始的时候难度太大了
#8
有何高见?
#9
谢谢!
#10
楼主补下基础吧,不然人家回答了你的问题,你都看不明白
#11
多谢!我自己程序搞错了一行!解决了!谢谢各位,分数有限,不能全给了,见谅!