Hello, first I want to say I'm a total noob to C++ and Visual Studio and MFC. Before this I studied Java in school. Anyway I'm required to learn MFC for work and I've been going through a reference book my supervisor has and I've run into an error that google can't seem to solve and I thought I'd try here before tracking down my supervisor for help.
I'm using Visual Studio 2008 and referencing a book called "MFC Programming with Visual C++ 6"
Here's what I'm going by: "Listing 2.1 demonstrates how the constructor is used in the MFCSample application to intialize the m_currentColor member variables." The idea behind the program is to fill a section with a colour chosen with the Colour Picker.
This is their code:
CMFCSampleDlg::CMFCSampleDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMFCSampleDlg::IDD, pParent)
, m_currentColor(RGB(0,0,255))
{
//{{AFX_DATA_INIT(CMFCSampleDlg)
m_fileName = _T("");
//}}AFX_DATA_INIT
//[omitted code]
}
it continues to state that m_fileName was generated by Visual Studio.
Here's the code I have
CMFCSampleeDlg::CMFCSampleeDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMFCSampleeDlg::IDD, pParent)
, m_strFile(_T(""))
//////////////////////
//MY CODE STARTS HERE
/////////////////////
, m_currentColor(RGB(0,0,255))
/////////////////////
//MY CODE ENDS HERE
/////////////////////
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
Ignore the extra 'e' in Sample, I already had a file called MFCSample.
"Listing 2.2 shows the calls to EnableToolTips and DrawBitMapWithColor in the initialization for the MFCSample application
BOOL CMFCSampleDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//[omitted code]
//TODO: Add extra initialization here
EnableToolTips();
DrawBitmapWithColor();
return TRUE; //return TRUE unless you set the focus to a control
}
And this is my code, I left out the tooltips.
BOOL CMFCSampleeDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
/////////////////////
//MY CODE STARTS HERE
//////////////////////
DrawBitmapWithColor();
////////////////////
//MY CODE ENDS HERE
////////////////////
return TRUE; // return TRUE unless you set the focus to a control
}
Please note that in the book this is the first mention of m_currentColor or DrawBitmapWithColor.
And finally the event for the button clicked. It should, bring up the colour picker, let me pick a colour and fill a rectangle with that colour.
void CMFCSampleeDlg::OnBnClickedColour()
{
// TODO: Add your control notification handler code here
CColorDialog colorDlg(m_currentColor);
if(colorDlg.DoModal() == IDOK){
m_currentColor = colorDlg.GetColor();
DrawBitmapWithColor();
}
}
And these are the errors I'm getting:
------ Build started: Project: MFCSamplee, Configuration: Debug Win32 ------
Compiling...
MFCSampleeDlg.cpp
c:\documents and settings\danielle\my documents\visual studio 2008\projects\mfcsamplee\mfcsamplee\mfcsampleedlg.cpp(59) : error C2614: 'CMFCSampleeDlg' : illegal member initialization: 'm_currentColor' is not a base or member
c:\documents and settings\danielle\my documents\visual studio 2008\projects\mfcsamplee\mfcsamplee\mfcsampleedlg.cpp(119) : error C3861: 'DrawBitmapWithColor': identifier not found
c:\documents and settings\danielle\my documents\visual studio 2008\projects\mfcsamplee\mfcsamplee\mfcsampleedlg.cpp(190) : error C2065: 'm_currentColor' : undeclared identifier
c:\documents and settings\danielle\my documents\visual studio 2008\projects\mfcsamplee\mfcsamplee\mfcsampleedlg.cpp(192) : error C2065: 'm_currentColor' : undeclared identifier
c:\documents and settings\danielle\my documents\visual studio 2008\projects\mfcsamplee\mfcsamplee\mfcsampleedlg.cpp(193) : error C3861: 'DrawBitmapWithColor': identifier not found
Build log was saved at "file://c:\Documents and Settings\Danielle\My Documents\Visual Studio 2008\Projects\MFCSamplee\MFCSamplee\Debug\BuildLog.htm"
MFCSamplee - 5 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
I'd appreciate any light you can shead on this for me