帮我看一下,到底哪里错了?我什么方法都试过了。
vs2012吧
全部回复
仅看楼主
level 2
jiang_42_6 楼主
这是源代码:
//例2-5的源代码
#include"stdafx.h"
class CMYWnd:public CFrameWnd{//增加的窗体派生类
private:
LPCWSTR ShowText;//用于windows窗体中的显示字符串
public:
afx_msg LRESULT OnPaint(WPARAM,LPARAM);//消息响应函数
afx_msg LRESULT OnLButtonDown(WPARAM,LPARAM);//消息响应函数
DECLARE_MESSAGE_MAP()//宏,用于声明一个消息映射表
};
BEGIN_MESSAGE_MAP(CMYWnd,CFrameWnd)//宏,用于声明消息映射表
ON_WM_PAINT()//标准消息
ON_WM_LBUTTONDOWN()//标准消息左键按下
END_MESSAGE_MAP()
LRESULT CMYWnd::OnPaint(WPARAM wParam,LPARAM lParam){
//消息响应函数,在windows窗体中显示"有消息映射表的程序"
CPaintDC dc(this);
dc.TextOut(20,20,ShowText);
return TRUE;
}
LRESULT CMYWnd::OnLButtonDown(WPARAM wParam,LPARAM lParam){
//当左键按下后
ShowText=L"有消息映射表的程序";
InvalidateRect(NULL,TRUE);
return TRUE;
}
class CMYApp:public CWinApp{//增加的程序派生类
public:
BOOL InitInstance();//调用窗体类的函数
};
BOOL CMYApp::InitInstance(){//显示一个windows窗口
CMYWnd *pMainWnd=new CMYWnd;
pMainWnd->Create(0,TEXT("MFC"));
pMainWnd->ShowWindow(m_nCmdShow);
pMainWnd->UpdateWindow();
m_pMainWnd=pMainWnd;
return TRUE;
}
CMYApp MYApp;//程序类的对象。
2013年05月14日 04点05分 1
level 2
jiang_42_6 楼主
建立的项目是win32项目,是一个空项目,勾选了"静态库","MFC"。
2013年05月14日 04点05分 2
level 2
jiang_42_6 楼主
1>c:\users\jiang\documents\visual studio 2012\projects\2-2上机实验\2-2上机实验\上机实验2-5.cpp(12): error C2440: “static_cast”: 无法从“LRESULT (__thiscall CMYWnd::* )(WPARAM,LPARAM)”转换为“void (__thiscall CWnd::* )(void)”
1> 从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast
1>c:\users\jiang\documents\visual studio 2012\projects\2-2上机实验\2-2上机实验\上机实验2-5.cpp(13): error C2440: “static_cast”: 无法从“LRESULT (__thiscall CMYWnd::* )(WPARAM,LPARAM)”转换为“void (__thiscall CWnd::* )(UINT,CPoint)”
1> 从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast
========== 全部重新生成: 成功 0 个,失败 1 个,跳过 0 个 ==========
2013年05月14日 04点05分 3
level 2
jiang_42_6 楼主
我把这道题写完,我在MSDM论坛找到了答案,这两行改写一下就行了.
afx_msg void OnPaint();//消息响应函数
afx_msg void OnLButtonDown(UINT,CPoint );//消息响应函数
我还明白了一件事情,写这类函数时,最好参考一下MSDN的解释。
吃一堑长一智吧,我很满意自己的这种情况。
2013年05月14日 16点05分 4
level 2
jiang_42_6 楼主
真的有点傻,在这里发这种帖子,不知道有没有能看懂的。
2013年05月14日 16点05分 5
1