还是不行,我是在class CxxxView::OnDraw(CDC *pDC)里面写上代码,让它画图。 然后我试着在class CAboutDlg : public CDialog里面重载BOOL CDiaDlg::PreTranslateMessage(MSG* pMsg),在里面我却没办法传递pDC给他,也就画不了图。不知该怎么办。 另外,关于重载问题:我直接在CAboutDlg中加入bool CDiaDlg::PreTranslateMessage(MSG* pMsg),编译就报这样的错: \zhengfang.cpp(105) : error C2555: 'CAboutDlg::PreTranslateMessage' : overriding virtual function differs from 'CDialog::PreTranslateMessage' only by return type or calling convention 然后我把bool去掉就没这个错了,我把bool改成BOOL也没这个错了,为什么?
include iostream.h 就行了
BOOL CDiaDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN)
{
if(pMsg->wParam == 0x43 || pMsg->wParam == 0x63)
//wParam这个参数对应你输入的按键来处理就好了
......
}
}
你说用cin 你建立的是win32 console application吗
BOOL CDiaDlg::PreTranslateMessage(MSG* pMsg) 这里只有CAboutDlg,CMainFrame,CxxxApp,CxxxDoc,CxxxView,
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
BOOL CThreadDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
CString s = "";
s.Format("%d",pMsg->wParam);
AfxMessageBox(s);
}
return CDialog::PreTranslateMessage(pMsg);
}
应该是你想要的吧
然后我试着在class CAboutDlg : public CDialog里面重载BOOL CDiaDlg::PreTranslateMessage(MSG* pMsg),在里面我却没办法传递pDC给他,也就画不了图。不知该怎么办。
另外,关于重载问题:我直接在CAboutDlg中加入bool CDiaDlg::PreTranslateMessage(MSG* pMsg),编译就报这样的错: \zhengfang.cpp(105) : error C2555: 'CAboutDlg::PreTranslateMessage' : overriding virtual function differs from 'CDialog::PreTranslateMessage' only by return type or calling convention
然后我把bool去掉就没这个错了,我把bool改成BOOL也没这个错了,为什么?
重画用Invalidate()