void CTest::SomeFunc(...)
{
...
int x;
int y;
...
CFrameWnd* pFrame = (CFrameWnd*)(AfxGetApp()->m_pMainWnd);
CMyAppView* pView = (CMyAppView*)(pFrame->GetActiveView());
CClientDC dc(pView);
COLORREF pix = dc.GetPixel(x, y);
...
}
HELP - MFC - GetPixel doesnt work!!!
In an SDI application I created a new Class, say, CTest.
In one of the member functions of CTest I included the following code -
But the function GetPixel doent return the correct value of the the pixel color at (x,y);
when I debugged it pix always had the value 0xffffffff.
Please help...
"There is a Bug in every Code!"
yeah lose it unless your making a business program, plus I dont think your view is correct.
maybe be true or may not be true
maybe be true or may not be true
Dont let them tell you to lose GDI or MFC. The error can be fixed while not getting rid of your current code. What does GetLastError() return?
Qui fut tout, et qui ne fut rien
Invader''s Realm
Qui fut tout, et qui ne fut rien
Invader''s Realm
I dont know how to use GetLastError(). But I gave the following command after
Instead of getting the DC thru CClientDC I tried passing the pDC pointer from the OnDraw() function of the View class to a ststic member pDC of my own class.
while debugging the value of d is 0xcccccccc
and that of pDC is 0x0012f9d4 {hDC = 0xcccccccc attrib = oxcccccccc}
can u help me out?
"There is a Bug in every Code!"
COLORREF pix = dc.GetPixel(x, y); DWORD d = GetLastError();
Instead of getting the DC thru CClientDC I tried passing the pDC pointer from the OnDraw() function of the View class to a ststic member pDC of my own class.
while debugging the value of d is 0xcccccccc
and that of pDC is 0x0012f9d4 {hDC = 0xcccccccc attrib = oxcccccccc}
can u help me out?
"There is a Bug in every Code!"
I dont know how to use GetLastError(). But I gave the following command after
Instead of getting the DC thru CClientDC I tried passing the pDC pointer from the OnDraw() function of the View class to a ststic member pDC of my own class.
while debugging the value of d is 0xcccccccc
and that of pDC is 0x0012f9d4 {hDC = 0xcccccccc attrib = oxcccccccc}
can u help me out?
COLORREF pix = dc.GetPixel(x, y); DWORD d = GetLastError();
Instead of getting the DC thru CClientDC I tried passing the pDC pointer from the OnDraw() function of the View class to a ststic member pDC of my own class.
while debugging the value of d is 0xcccccccc
and that of pDC is 0x0012f9d4 {hDC = 0xcccccccc attrib = oxcccccccc}
can u help me out?
quote:Original post by CuteBug
I dont know how to use GetLastError(). But I gave the following command after
COLORREF pix = dc.GetPixel(x, y);
DWORD d = GetLastError();
Instead of getting the DC thru CClientDC I tried passing the pDC pointer from the OnDraw() function of the View class to a ststic member pDC of my own class.
while debugging the value of d is 0xcccccccc
and that of pDC is 0x0012f9d4 {hDC = 0xcccccccc attrib = oxcccccccc}
can u help me out?
"There is a Bug in every Code!"
The 0xcccccccc means that the DC was not initialized (0xcccccccc is the value that the debugger assigns uninitialized variables). Can you show me the code you use to pass the pDC pointer from the OnDraw function to the static member of your class (perhaps the entire OnDraw function also)?
I also encourage you to learn how to use the MSDN because then you would have been able to look up how to use GetLastError().
Qui fut tout, et qui ne fut rien
Invader''s Realm
I added two static variables to my class CTest.
Test.h
Test.cpp
Then I initialized pDC in the OnDraw() function
MyView.cpp
I used the gotView variable to ensure that I will be using the member functions of pDC only after it is initialized.
"There is a Bug in every Code!"
Test.h
static CDC* pDC; static bool gotView;
Test.cpp
CDC* Spawn::pDC = NULL; bool Spawn::gotView = false;
Then I initialized pDC in the OnDraw() function
MyView.cpp
void CMyView::OnDraw(CDC* pDC){ Spawn::pDC = pDC; Spawn::gotView = true; CFloodDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);}
I used the gotView variable to ensure that I will be using the member functions of pDC only after it is initialized.
"There is a Bug in every Code!"
Don''t listen to anyone one of these kids
nick5454
MattS423
Oberon_Command
As for your problem test the value it is returning check to see it''s not CLR_INVALID. Remeber that the x and y coordinates are logical coordinates.
nick5454
MattS423
Oberon_Command
As for your problem test the value it is returning check to see it''s not CLR_INVALID. Remeber that the x and y coordinates are logical coordinates.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement