Click here to Skip to main content
11,481,404 members (60,345 online)
Rate this: bad
good
Please Sign up or sign in to vote.
See more: VC6 MFC
The CDC (SetPixel) function cannot be accessible inside the member function of another class.

//OnPerformIBIT is a member function created by me
void CSplitterOne:: OnPerformIBIT()
{
    CDC *myDC = GetDlgItem(IDC_PICBOX)->GetDC();
 
    myDC->SetPixel(0, 0, RGB(0,0,0));
    myDC->SetPixel(1, 1, RGB(0,0,0));
    myDC->SetPixel(2, 2, RGB(0,0,0));
    myDC->SetPixel(3, 3, RGB(0,0,0));
    myDC->SetPixel(4, 4, RGB(0,0,0));
    myDC->SetPixel(5, 5, RGB(0,0,0));
    myDC->SetPixel(6, 6, RGB(0,0,0));
}

//In the above function is called from MainFrm.cpp. In the same function I cannot create the object for CDC. It give assertion. I am not get the Handle for Window (hWnd).
If I am do the same in thing in OnPaint() it works. Please Help me.

//CSplitterOne is FormView class.
Posted 9-Mar-13 0:26am
Comments
Jochen Arndt at 9-Mar-13 7:38am
   
Is IDC_PICBOX a child window of CSplitterOn?
rajeshkumar.ramasamy at 20-Mar-13 8:02am
   
Yes, IDC_PICBOX is child window of CSplitterOne class.

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

It looks like you are calling GetDlgItem at a moment when the window has not been created yet. Then it's m_hWnd is still 0 and you run into an ASSERT.

You can easily verify this assumption by testing m_hWnd before calling GetDlgItem.
  Permalink  
Comments
rajeshkumar.ramasamy at 12-Mar-13 8:09am
   
I had Create same form using Splitter Window. I have to call the OnPerformIBIT() function from MainFrm.cpp. I am not got the handle when I am calling from MainFrm.cpp, If I put the same function from OnPaint & OnInitialUpdate, it works. How can i get the window handle if i'm call from Mainfrm.cpp?

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



Advertise | Privacy | Mobile
Web03 | 2.8.150520.1 | Last Updated 14 Mar 2013
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100