|
hi all,
I want to change the selected Full Row of the MSFlexGrid accordingly when mouse changes its cursor to next Row. I mean when Mouse is moved to the Second Row then the Current Selection must be Second Row.
In general the Selection of the Flex Grid is Static and does not depend on the Mouse Move. please help me out for this solution.
thanks,
uday.
uday kiran
uday kiran
|
|
|
|
|
Hi all,
I know I can use PlgBlt to rotate a defined rectangle, but i am not sure on how to use it properly, meaning i want to rotate a drawn rectanle (a rectangle which is drawn on a dialog using the method OnPaint) in 30 degrees.
The question is how to maintain the drawing, for example to to erase the old rectangle place, and how to draw the new rectangle place using the PlgBlt method...
code snippet could be nice
thanks in advanced
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
This example rotates text by 30 degrees - Replace the text rendering code with your drawing code. Will not work in 95/98/ME.
--------------------------------------
CPaintDC dc(this);
int OldMode = SetGraphicsMode(dc.m_hDC, GM_ADVANCED);
static const double pi = 4.0*atan(1.0);
static const double angle = 30.0*(pi/180.0);
static const XFORM xf = {cos(angle), sin(angle),
-sin(angle), cos(angle),
0, 0};
SetWorldTransform(dc.m_hDC, &xf);
CRect rcClient;
GetClientRect(&rcClient);
rcClient += CPoint(50, 50);
dc.DrawText(_T("Hello\nThere"), -1, &rcClient, 0);
SetGraphicsMode(dc.m_hDC, OldMode);
--------------------------------------
Steve
|
|
|
|
|
Thanks! it really helped....
A nicer way without using the PlgBlt method
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
Really a nice code.
Quite helpful.
Thanks again.
|
|
|
|
|
Hi Steve,
Aparently, this code only rotate the triangle in a 2 dimention way. suppose i use text inside the triangle, my request is to rotate the triangle (with the text inside) in 30 degrees, and this shift it so it would appear in 3 dimentions....
can u solve this one? should i now use PlgBit? if so , how? i need a code snippet.
thanks again
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
I'm not sure what you mean - But I think SetWorldTransform can do everything that PlgBlt can. Can you explain what you mean better?
Steve
|
|
|
|
|
Ok, forgive me if i didn't explain myself properly....
I have a dialog application.
On the dialog I am drawing a triangle let us say 10,10,200,200 and inside i am drawing the text "Hello there"
so far so good?
When i push a button i want the triangle to be displayed instead of in 2D in 3D, which means the right top point should be lower than the original, same as the right bottom. this way it will give the illusion of a 3D rectangle.
touble is how to do it, and also divert the text inside so it would the same be in 3D.
i've manage to diver the triangle and text in 30 degrees using PlgBlt, but the result was not good because i saw the previous drawings (old triangle).
can u help now? did i make myself clear this time?
thanks again
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
I'm sorry but I still don't understand. You say you've got a triangle and you list the following numbers:
0,10,200,200
But what do these numbers mean? A triangle has three points and each point takes two numbers to describe - so that means we should have 6 numbers - you've only go 4. If they are side lengths we've got one too many.
I assume you want to distort the rendering to simulate perspective?
Steve
|
|
|
|
|
Oh man, i woke up on the wrong side today hehehehe
for each triangle word i refered above , replace it with a square
now do you see my point?
help?
thanks
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
I think so, although the list of numbers still stumps me: a square would require 8 numbers.
Anyway, I think when you said rotation, you meant around the x-axis or the y-axis and not around z. If this is what you want you can't do it using GDI. GDI is 2D: SetWorldTransform can only do translation, rotation, shearing, stretching and mirroring. Basically only affine transformations in 2D.
Steve
-- modified at 4:00 Sunday 23rd April, 2006
|
|
|
|
|
Stephen Hewitt wrote: If this is what you want you can do it using GDI.
How? code snippet?
thanks again
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
I just modified my post. I meant to write you "can't do it". GDI is only for 2D.
Steve
|
|
|
|
|
look at the parameters of PlgBlt
it take an array of points, which means it can divert the shape you are drawing in the Z axis as well.....
Like i said, i've managed to diver the rectangle in 30 degrees in the Z axis, but the old drawing were remained....(of the original position of the rectangle)...
I'm sure this can be done...
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
I still don't believe you can do what I think you're after using simple GDI calls. If you do manage it I would be interested in seeing how you did it.
Good luck.
Steve
-- modified at 7:28 Sunday 23rd April, 2006
|
|
|
|
|
Can you give me an email so i can send to you my small sample?
In the sample, if you press the button, the rectangle diverts in a certain angle and it and the text inside it appears as in 3D, trouble is how to erase the preiovus rectangle drawings....
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
Did you get my sample via email?
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
|
I've played with your example and I can't get it to do what you want (as I suspected). The destination rectangle is always a "parallelogram" (quoted text from MSDN): that's a square or rectangle which is squashed to one side so that the two opposing sides are parallel. To simulate perspective you need a trapezium.
Steve
|
|
|
|
|
not sure i understand you reply...
Stephen Hewitt wrote: that's a square or rectangle which is squashed to one side so that the two opposing sides are parallel. To simulate perspective you need a trapezium.
????
can you explain it in more simple words.
thanks
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
A parallelogram looks like this:
-----
\ \
\ \
-----
But a trapezium looks like this:
---
/ \
/ \
-------
PlgBlt is short for parallelogram_Bit_Blit. The following is a quote from MSDN:
"Pointer to an array of three points in logical space that identify three corners of the destination parallelogram".
Notice it has three points not four - This ensures it is impossible to even ask for a shape that isn't a parallelogram: No matter which three points you give to it a third is calculated such that the resulting shape is a parallelogram.
To simulate perspective you need something that looks like a trapezium.
Steve
|
|
|
|
|
I know the difference between a trapezium and parallelogram.
since the rectangle is diverted and represented in 3D environment, i do need to preserve its coordinates so the outcome result of what is need is a parallelogram and not trapezium.
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
What do you mean, "since the rectangle is diverted and represented in 3D environment"? PlgBlt performs a 2D mapping from a rectangle to a parallelogram. A far as I can see that's a show stopper for you. I think to get it to work the way you want you’d have to use DirectX or OpenGL or create your own code to calculate a transformation for every pixel – No simple GDI call that I know of can do what you want as it’s designed for 2D work.
Steve
|
|
|
|
|
|
I can't see anything that will help you in there.
Steve
-- modified at 7:26 Sunday 23rd April, 2006
|
|
|
|