|
|
See here[^]
You need to google first, if you have "It's urgent please" mentioned in your question.
_AnShUmAn_
|
|
|
|
|
Thank for reply.Now i use new which is given by you.But still i have error.Error is like that
error C2065: 'm_wndOwner' : undeclared identifier
error C2228: left of '.m_hWnd' must have class/struct/union
error C2228: left of '.CreateEx' must have class/struct/union
error C2228: left of '.m_hWnd' must have class/struct/union
error C2228: left of '.DestroyWindow' must have class/struct/union
Plz help me
|
|
|
|
|
You need to declared 'm_wndOwner' and other errors depends to it.
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
As mentioned,
(m_wndOwner is a CWnd member variable added to the application class)
you didn't declare the member variable in your code. The other errors would be due to this factor only.
You need to google first, if you have "It's urgent please" mentioned in your question.
_AnShUmAn_
|
|
|
|
|
Hi,
How to change the color of CStatic control text?
|
|
|
|
|
|
You can use of this event WM_CTLCOLORSTATIC .
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
Hi,
i am new to OpenGL and therefore need your help. When i draw a simple line using MFC it works fine... my pixels are ret correctly..
when i am trying to redraw that automatically using OpenGL they are being drawn in reverse...so instead of let say up to bottom... it is drawing it bottom to top.
please let me know what changes need to be done withing Vertex...i tried it all.. i don't see how to fix this.
<br />
int dx = (x2 - x1);<br />
int dy = (y2 - y1);<br />
int temp;<br />
float k;<br />
<br />
glBegin(GL_LINES);<br />
::SetPixel(m_hDC, x1, y1, color);<br />
glVertex2f(x1,y1);<br />
if (abs(dx) > abs(dy))<br />
{<br />
if (dx < 0)<br />
{<br />
temp = x1;<br />
x1 = x2;<br />
x2 = temp;<br />
<br />
temp = y1;<br />
y1 = y2;<br />
y2 = temp;<br />
}<br />
k = (float)dy / (float)dx;<br />
<br />
int xs;<br />
float yt = (float)y1 + k;<br />
float distance;<br />
for (xs=x1+1; xs<x2; xs++)<br />
{<br />
distance = (float)(yt - (int)(yt));<br />
<br />
::SetPixel(m_hDC, xs, (int)yt, color);<br />
glVertex2f(xs,(int)yt);<br />
::SetPixel(m_hDC, xs, (int)yt+1, color);<br />
glVertex2f(xs,(int)yt+1);<br />
<br />
yt += k;<br />
}<br />
}<br />
else<br />
{<br />
if (dy < 0)<br />
{<br />
temp = x1;<br />
x1 = x2;<br />
x2 = temp;<br />
<br />
temp = y1;<br />
y1 = y2;<br />
y2 = temp;<br />
}<br />
k = (float)dx / (float)dy;<br />
<br />
int ys;<br />
float xt = (float)x1 + k;<br />
float distance;<br />
for (ys=y1+1; ys<y2; ys++)<br />
{<br />
distance = (float)(xt - (int)(xt));<br />
<br />
::SetPixel(m_hDC, (int)xt, ys, color);<br />
glVertex2f((int)xt,ys);<br />
::SetPixel(m_hDC, (int)xt+1, ys, color);<br />
glVertex2f((int)xt+1,ys);<br />
xt += k;<br />
}<br />
}<br />
<br />
::SetPixel(m_hDC, x2, y2, color);<br />
glVertex2f(x2,y2);<br />
glEnd();<br />
|
|
|
|
|
It depends on the settings your using for your OpenGL renderer.
Don't try it, just do it!
|
|
|
|
|
|
Member 3375334 wrote: gluOrtho2D(0.0, width, 10.0, height);
The gluOrtho2D function has the following arguments:
void gluOrtho2D ( GLdouble left , GLdouble right , GLdouble bottom , GLdouble top );
So, first question, why do you pass 10 for the bottom instead of 0 ?
Anyway, if you want to use the same coordinate system as with the MFC (top=0 and y value increase when you go down), then you have to invert the top and bottom:
gluOrtho2D(0.0, width, height, 0.0);
Another point: why are you using SetPixel in an OpenGL environment ? If you want to draw things with OpenGL, then it is best to use only OpenGL primitives to do so.
|
|
|
|
|
the reason why i am using SetPixel is because i need to draw line in MFC and at the same time make it draw in OpenGL... i am sorry i didn't mention that earlier.
that 10 was a mistake i meant for it to be 0 yes.
another question i wanted to ask actually was that when i add OpenGL to MFC and roll my mouse over the screen i get entirely black screen and do not see on the left side my MFC line anymore. So what i am trying to do is to draw MFC line on the left and project that line the same exact way on the right.
what am i doing wrong for that? because if i am trying to change a window color wihich by default is black to white my window flickers. when i close the window i see briefly my MFC line....but it's like behind the OpenGL layer...
what's wrong?
|
|
|
|
|
|
Member 3375334 wrote: old lines are not being erased like in MFC one. I thought by doing PushMatrix will do the trick...
PushMatrix doesn't change anything of what is already drawn on the screen. In fact what you are doing is drawing things on a buffer that was not cleared. Because of that, your previous lines are still visible: it's a bit like drawing things on a paper, if you don't erase what's already on the paper, it will still be visible. MFC and OpenGL work completely differently on that aspect (and on many others).
PushMatrix simply pushes the current model/view matrix one place down the stack so that you can 'save' it for later. This model/view matrix is simply a matrix that will be applied to points in your model in order to position them correctly.
Also, your design is a bit ugly. You should draw things in your mouse handler. Instead you should store your data and put all the drawing code in the OnPaint handler.
For your other questions, I don't really understand what you are trying to do: it seems that you are drawing both from MFC and from OpenGL on the same window. In that sense, chances are that you will only be able to see the results from one of the two. Why do you need to have MFC and OpenGL drawing on the same window ?
|
|
|
|
|
Ok the fact that my code is so ugly is because i am brand new to all this so please don't be judgmental
the reason why i am doing it in mousemove..is because that's what i need to do.. i need to draw on mouse move not paint. when i move my mouse i should be drawing lines. So that's right. The reason why i need to see MFC is because that's what i need to do based on the requirements.
where should i do clear?
|
|
|
|
|
Member 3375334 wrote: Ok the fact that my code is so ugly is because i am brand new to all this so please don't be judgmental
I don't judge you, I was just saying that what you did is not the best design.
Member 3375334 wrote: the reason why i am doing it in mousemove..is because that's what i need to do.. i need to draw on mouse move not paint.
Of course, but storing your information (the coordinates of each lines for instance) in the mouse handler and forcing a repaint of the view will have the same effect. Besides, all drawing code from the MFC has to be put in the OnPaint handler, otherwise if your window is hidden for a while (even partially), all the MFC drawing will be lost because windows doesn't store any information about what to draw but instead issues a WM_PAINT message and lets the window repaint itself. As you didn't provide any drawing code there, everything is lost.
Member 3375334 wrote: The reason why i need to see MFC is because that's what i need to do based on the requirements.
And what are your exact requirements here ? Because I don't see any reason why you would need to use MFC AND OpenGL on the same window. How can you expect to see one drawing through the other one ? I'm not an expert in mixing MFC and OpenGL drawings together, but I think this is not possible (not sure about it, but it sounds really strange anyway). Think of it this way: imagine that OpenGL and MFC are painting things on a buffer (like a real life painting). Now, each of them puts its buffer on the screen ("they hang their paintings on the wall" ). So, you can't see both of the paintings at the same time...
Besides, another strange thing is that OpenGL and MFC have different levels of 'abstraction': with MFC, you draw things on your screen and everything is 'pixel based'. With OpenGL, you are one level higher: your model have a space which is converted to screen coordinates by OpenGL. In your case, it happens that your units in the space correspond to pixels because you configured OpenGL this way. Suppose now that you want to add features like zoom, which is easy to do in OpenGL, then the MFC drawing won't follow.
|
|
|
|
|
Hi,
I would like to to display a certin amount of Characters om a line of a Rich Edit
Dialog Box
Seems line the EM_SETFORMAT message with the Charaformat Structure doesn't give me as much flexibility as the data in thr Logfont sturcture
It seems Like CFONTdialog object give you more flexbility in setting a font of a dialog box
My quetion is does the CFONTDialog OBJECT Actually display a Dialog Box ???
As it seems after Creating the Object The User needs to invoke
the DoModal method to inquire or set the Font Values ???
|
|
|
|
|
ForNow wrote: My quetion is does the CFONTDialog OBJECT Actually display a Dialog Box ???
Only if you call its DoModal() method.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
IS there anything to get width of a charcter in a Rich Edit Control
as Logfong has lfWidth
|
|
|
|
|
CDC::GetTextExtent
BOOL ok = FALSE;
int richeditwidth = CRichEditCtrl::GetRect get richeditwidth
CFont font = CRichEditCtrl::GetFont
do{
1.CDC::GetTextExtent get stringwidth
2.if(stringwidth < richeditwidth)
{
ok = TRUE;
}
else
{
font size --
CRichEditCtrl::SetFont
}
}while(!ok);
hope this can help u .
|
|
|
|
|
ForNow wrote: as Logfong has lfWidth
You can still use the LOGFONT structure by first calling the GetLogFont() method. Something like:
CFont* font = richeditctrl.GetFont();
if (font)
{
LOGFONT lf;
font>GetLogFont(&lf);
TRACE("%ld", lf.lfWidth);
}
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
I have been coding most this app in C seems like this might be a good time be a good time to go C++ OO MFC Cricheditctrl, etc
|
|
|
|
|
This is a lot like the question you asked two days ago:
http://www.codeproject.com/script/Forums/View.aspx?fid=1647&msg=2926253[^]
You can't just stab in the dark guessing at things.
If your question is:
"I have a window X pixels wide. Given a certain font, how many characters can I fit in the window?"
Unless the font is fixed width, then you have to ask the question the other way around.
"I have a string. I have a font. How many pixels on the screen will it take up".
That question you've had answered twice.
GetTextExtent is your friend.
I wish you luck - I'm sure you're getting very frustrated by now.
Iain.
Codeproject MVP for C++, I can't believe it's for my lounge posts...
|
|
|
|
|
I am A Assembler MainFrame Programmer By Day I have always wanted to Move to Newer Things OO e.g. CRichEditCtrl
pixels.... Are a whole new way thinking thankx for Being Patient with me .......................
|
|
|
|