Click here to Skip to main content
13,056,229 members (110,093 online)
Rate this:
Please Sign up or sign in to vote.
See more:
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 8-Mar-13 23:26pm
Jochen Arndt 9-Mar-13 7:38am
Is IDC_PICBOX a child window of CSplitterOn?
rajeshkumar.ramasamy 20-Mar-13 8:02am
Yes, IDC_PICBOX is child window of CSplitterOne class.

1 solution

Rate this: bad
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.
rajeshkumar.ramasamy 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)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web02 | 2.8.170728.5 | Last Updated 14 Mar 2013
Copyright © CodeProject, 1999-2017
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