Compiling...
CDROMControl.cpp
f:\vc\cdromcontrol\cdromcontroldlg.h(14) : error C2011: 'CCDROMControlDlg' : 'class' type redefinition
F:\vc\CDROMControl\CDROMControl.cpp(27) : error C2511: 'CCDROMControlDlg::CCDROMControlDlg' : overloaded member function 'void (class CWnd *)' not found in 'CCDROMControlDlg'
f:\vc\cdromcontrol\cdromcontrol.h(22) : see declaration of 'CCDROMControlDlg'
F:\vc\CDROMControl\CDROMControl.cpp(193) : fatal error C1004: unexpected end of file found
CDROMControlDlg.cpp
f:\vc\cdromcontrol\cdromcontroldlg.h(14) : error C2011: 'CCDROMControlDlg' : 'class' type redefinition
F:\vc\CDROMControl\CDROMControlDlg.cpp(64) : error C2511: 'CCDROMControlDlg::CCDROMControlDlg' : overloaded member function 'void (class CWnd *)' not found in 'CCDROMControlDlg'
f:\vc\cdromcontrol\cdromcontrol.h(22) : see declaration of 'CCDROMControlDlg'
F:\vc\CDROMControl\CDROMControlDlg.cpp(184) : fatal error C1004: unexpected end of file found
Generating Code...
Error executing cl.exe.CDROMControl.exe - 6 error(s), 0 warning(s)
上面的错误是什么,怎么修改?
先谢了!
CDROMControl.cpp
f:\vc\cdromcontrol\cdromcontroldlg.h(14) : error C2011: 'CCDROMControlDlg' : 'class' type redefinition
F:\vc\CDROMControl\CDROMControl.cpp(27) : error C2511: 'CCDROMControlDlg::CCDROMControlDlg' : overloaded member function 'void (class CWnd *)' not found in 'CCDROMControlDlg'
f:\vc\cdromcontrol\cdromcontrol.h(22) : see declaration of 'CCDROMControlDlg'
F:\vc\CDROMControl\CDROMControl.cpp(193) : fatal error C1004: unexpected end of file found
CDROMControlDlg.cpp
f:\vc\cdromcontrol\cdromcontroldlg.h(14) : error C2011: 'CCDROMControlDlg' : 'class' type redefinition
F:\vc\CDROMControl\CDROMControlDlg.cpp(64) : error C2511: 'CCDROMControlDlg::CCDROMControlDlg' : overloaded member function 'void (class CWnd *)' not found in 'CCDROMControlDlg'
f:\vc\cdromcontrol\cdromcontrol.h(22) : see declaration of 'CCDROMControlDlg'
F:\vc\CDROMControl\CDROMControlDlg.cpp(184) : fatal error C1004: unexpected end of file found
Generating Code...
Error executing cl.exe.CDROMControl.exe - 6 error(s), 0 warning(s)
上面的错误是什么,怎么修改?
先谢了!
最开头加入 #ifnedf _CDROMCONTROL_H
#define _CDROMCONTROL_H结尾加入 #endif
#pragma once
我按照你方法,编译结果还有两个错误,如下:
Compiling...
Skipping... (no relevant changes detected)
StdAfx.cpp
Compiling...
CDROMControl.cpp
f:\vc\cdromcontrol\cdromcontrol.cpp(4) : fatal error C1083: Cannot open precompiled header file: 'Debug/CDROMControl.pch': No such file or directory
CDROMControlDlg.cpp
f:\vc\cdromcontrol\cdromcontroldlg.cpp(4) : fatal error C1083: Cannot open precompiled header file: 'Debug/CDROMControl.pch': No such file or directory
Generating Code...
Error executing cl.exe.CDROMControl.exe - 2 error(s), 0 warning(s)
class CCDROMControlDlg : public CDialog
{
protected:
HICON m_hIconArray[4];
int m_nIconPos;
BOOL m_bIsFirstMinimized;
BOOL m_bIsMinimized;
afx_msg void OnOpenButton();
afx_msg void OnCloseButton();
afx_msg void OnMinimizeButton();
afx_msg void OnDestroy();
afx_msg void OnTimer(UINT nIDEvent);
afx_msg void OnWM_NOTIFYICON(WPARAM wParam,LPARAM lParam);
DECLARE_MESSAGE_MAP()
};
在CDROMControl.cpp中加入的代码为:
#define WM_NOTIFYICON WM_USER+1
#define IDC_NOTIFYICON WM_USER+2 BEGIN_MESSAGE_MAP(CCDROMControlDlg,CDialog)
ON_BN_CLICKED(IDC_OPEN_BUTTON,OnOpenButton)
ON_BN_CLICKED(IDC_CLOSE_BUTTON,OnCloseButton)
ON_BN_CLICKED(IDC_MINIMIZE_BUTTON,OnMinimizeButton)
ON_WM_DESTROY()
ON_WM_TIMER()
ON_MESSAGE(WM_NOTIFYICON,OnWM_NOTIFYICON)
END_MESSAGE_MAP()CCDROMControlDlg::CCDROMControlDlg(CWnd* pParent)
:CDialog(CCDROMControlDlg::IDD,pParent)
{
m_nIconPos=0;
m_bIsFirstMinimized=FALSE;
m_bIsMinimized=FALSE;
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_hIconArray[0]=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_hIconArray[1]=AfxGetApp()->LoadIcon(IDI_ICON1);
m_hIconArray[2]=AfxGetApp()->LoadIcon(IDI_ICON2);
m_hIconArray[3]=AfxGetApp()->LoadIcon(IDI_ICON3);
}void CCDROMControlDlg::OnMinimizeButton()
{
if(m_bIsFirstMinimized==FALSE)
{
NOTIFYICONDATA nc;
nc.cbSize=sizeof(NOTIFYICONDATA);
nc.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
nc.hWnd=m_hWnd;
lstrcpy(nc.szTip,"光盘驱动控制器1.0");
nc.uCallbackMessage=WM_NOTIFYICON;
nc.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
nc.uID=IDC_NOTIFYICON;
ShellNotifyIcon(NIM_ADD,&nc);
SetTimer(1,200,NULL);
m_bIsFirstMinimized=TRUE;
}
ShowWindow(SW_HIDE);
m_bIsMinimized=TRUE;
}void CCDROMControlDlg::OnWM_NOTIFYICON(WPARAM wParam,LPARAM lParam)
{
UINT nID=(UINT)wParam;
UINT uMouseMsg=(UINT)lParam;
switch(uMouseMsg)
{
case WM_LBUTTONBLCLK:
if(m_bIsMinimized==TRUE)
{
ShowWindow(SW_SHOW);
m_bIsMinimized=!m_bIsMinimized;
}
break;
case WM_RBUTTONDOWN:
CMenu menu;
CPoint curpos;
GetCursorPos(&curpos);
if(menu.LoadMenu(IDR_MENU))
{
CMenu* pPopup;
pPopup=menu.GetSubMenu(0);
ASSERT(pPopup!=NULL);
SetForegroundWindow();
pPopup->TrackPopupMenu(TPM_LEFTALIGN|TMP_RIGHTBUTTON,curpos.x,curpos.y,AfxGetMainWnd());
}
}
}void CCDROMControlDlg::OnTimer(UINT nIDEvent)
{
NOTIFYICONDATA nc;
nc.cbSize=sizeof(NOTIFYICONDATA);
if(m_nIconPos==3)
m_nIconPos=0;
nc.hIcon=m_hIconArray[m_nIconPos++];
nc.hWnd=m_Wnd;
lstrcpy(nc.szTip,"光盘控制器1.0");
nc.uCallBackMessage=WM_NOTIFYICON;
nc.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
nc.uID=IDC_NOTIFYICON;
Shell_NotifyIcon(NIM_MODIFY,&nc);
CDialog::OnTimer(nIDEvent);
}void CCDROMControlDlg::OnSysCommand(UINT nID,LPARAM lParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
if(nID==SC_MINIMIZE)
ttonMinimize();
else
CDialog::OnSysCommand(nID,lParam);
}
}
void CCDROMControlDlg::OnDestroy()
{
CDialog::OnDestroy;
NOTIFYICONDATA nc;
nc.cbSize=sizeof(NOTIFYICONDATA);
nc.hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
nc.hWnd=m_hWnd;
nc.uCallbackMessage=WM_NOTIFYICON;
nc.uFlags=NIF_ICON | NIF_MESSAGE | NIF_TIP;
nc.uID=IDC_NOTIFYICON;
Shell_NotifyIcon(NIM_DELETE,&nc);
KillTimer(1);
}
请高手帮忙修改!先谢了!