|
Do you mean something like this?
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
dc.Ellipse(10, 10, 50, 50);
}
Or do you want to write the circle drawing code yourself? If so, Google "circle drawing algorithm".
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Ok so let's say that i wanna drew 3 cercles on my formview, so shoulf i write that code 3 times with different values?
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
did ever heard about loops?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
CPallini wrote: did ever heard about loops?
These?[^]
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Exactly.
BTW turn off your CPMRU , it is not fair using such device for this kind of guess.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
lol, I know about loops but the prob that i dont know how many circles that the user wanna, let say 2O so how could i declare the 20 vars for those cercles
for (i=0 ; i< 20; i++)
{
Cercle[i].....??
}
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
You could store the coordinates in an array.
An array container that grows automatically would be even better, like a vector or a CArray.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
yup i'm using a vector
but is the form "Formview" suitable for drawing or should i select another type?
i'm new on drawing :s
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
Ok I'tested on a FormView and it works i had a white circle it was a stupid querstion
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
You can draw on any window.
A CFormView is useful when you have controls you need to layout on the window like a dialog window.
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
You don't necessarily have to write the code three times.
However you write the code, it must call Ellipse() three times.
These are two equivalent examples:
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
dc.Ellipse(10, 10, 50, 50);
dc.Ellipse(30, 30, 70, 70);
dc.Ellipse(50, 50, 90, 90);
}
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
CRect CircleRect(10, 10, 50, 50);
for (int i = 0; i < 3; i++)
{
dc.Ellipse(&CircleRect);
CircleRect.OffsetRect(20, 20);
}
}
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
when i click on the butoon nothing is drawin !!!
is it a prob of reference to the dc .?
<br />
void CSecondForm::OnButton1() <br />
{<br />
<br />
CPaintDC dc(this);<br />
dc.Ellipse(20, 20, 100, 100);<br />
}<br />
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
You can only use a CPaintDC when responding to a WM_PAINT message (in OnPaint()).
Use a CClientDC in your button click handler instead...
void CSecondForm::OnButton1() <br />
{<br />
<br />
CClientDC dc(this);<br />
dc.Ellipse(20, 20, 100, 100);<br />
}
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thank you It works now.
but a last question ? how could i write a text into the cercle like "Cercle1" etc..
ANd thank you for your help.
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
You'll need to select a font into the DC (unless you want to use the default font), then you can use any of the
GDI text rendering functions (CDC::DrawText[Ex](), CDC::TextOut(), CDC::ExtTextOut(), etc.) to draw the text.
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
<br />
void CSecondForm::OnButton1() <br />
{<br />
<br />
CClientDC dc(this); <br />
dc.Ellipse(10, 10, 70, 70);<br />
dc.Ellipse(20, 20, 70, 70);<br />
dc.Ellipse(30, 30, 70, 70);<br />
dc.Ellipse(40, 40, 70, 70);<br />
CString str;<br />
str="Cercle";<br />
CDC::TextOut(100,100,str);<br />
}<br />
CDC::TextOutA' : illegal call of non-static member function
i atried even with CDC::TextOut(100,100,"Cercle");
Same prob
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
I found it, srry for the multipost.
void CSecondForm::OnButton1()
{
// TODO: Add your control notification handler code here
CClientDC dc(this);
dc.Ellipse(10, 10, 70, 70);
dc.Ellipse(20, 20, 70, 70);
dc.Ellipse(30, 30, 70, 70);
dc.Ellipse(40, 40, 70, 70);
CString str;
str="Cercle";
dc.TextOut(100,100,str);
}
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
You got it
I notated it that way ("CDC::") to show what class the methods were in - the CDC class.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
yup ou are all reason
Thank you ppl.
"The Ultimate Limit Is Only Your Imagination."
|
|
|
|
|
|
Here is what I am supposed to do:
Write a program that inputs and holds up to 100 novels. Be sure that the program holds at least the title, author (last name first), category, whether its an enjoyable book (rate 1-10), and the number of pages. Experiment and find a way to sort the completed list by one of the following choices (at the users’ discretion): by title (be CAREFUL – think about library listings), by author, by category, or by number of pages. Have the program display the sorted list in a table. The user should be able to save their list to a file with their choice of name. The program should be able to read back from said file. Be sure the user can save the list after it has been sorted, and they can add books when the list has been read in from the file.
Here is my PROBLEM: http://mycodewarriorcode.weebly.com/[^]
|
|
|
|
|
So what part of your assignment do you need help with?
Which part don't you understand and maybe we can assist?
|
|
|
|
|
The debugger is of big help in such circumstances.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
I create Dialog Box with
case WM_CTLCOLORSTATIC:
{
HDC hdcStatic = (HDC)wParam;
SetTextColor(hdcStatic, RGB(255, 255, 255));
SetBkMode(hdcStatic, TRANSPARENT);
return (long)(g_hbrBackground);
}
but after chusing another program and return to dialog activation -
it don't show dialog box at all!!!
(when I do UpdateWindow in case ON_PAINT, it show dialog, but without color!!)
|
|
|
|
|
The code you posted wouldn't have anything to do with that problem
(I'm assuming that code is in the dialog proc).
Using UpdateWindow in response to WM_PAINT is BAD. It's redundant, and also probably won't do anything.
UpdateWindow causes a WM_PAINT message to be sent by the system if any area of the window
being updated is marked invalid.
You're doing something wrong somewhere in your dialog proc if the window is not redrawing properly.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|