|
Quite a simple program you have done, which open the bitmap, but which do nothing on it.... Because you miss the loop on every pixels of the Bitmap.
To make it rotate, you should had some computation of the the net position of each pixel and copy from the original bitmap to a destination bitmap. The best way is to make the loop on each pixel of the destination bitmap.
But be carefull that you have to initialize a destination bitmap (may be temporar) which has the enough size increased by rotation factor.
You can have a look on a good routine in cximage (very good library) wher you will find in one of the cpp file the exmeple of rotating (use search "Rotate" to find it).
Hoping that it will hlp you....
NKH
|
|
|
|
|
|
If i declare a CEvent object as a member of my class -
a) Is it created such that it is manual reset / automatic
b) If automatic how do i tell the CEvent object that it shud be manul reset
Dimple
|
|
|
|
|
CEvent( BOOL bInitiallyOwn = FALSE, BOOL bManualReset = FALSE, LPCTSTR lpszName = NULL, LPSECURITY_ATTRIBUTES lpsaAttribute = NULL );
this is the construtor of the CEvent , all are optional constructor, you need to set it the way you want it,
2nd parameter will be of some interest to you.
regards,
Prakash.
"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|
|
Agreed that the constructor helps me specify the same but how do i use the constructor in creating my object. Ok lets put it this way
class A {
CEvent e;
}
now how do i create e with the constructor.
I hope u r getting my problem
|
|
|
|
|
(Well i found answer to my first question it is automatic)
Agreed that the constructor helps me specify the same but how do i use the constructor in creating my object. Ok lets put it this way
class A {
CEvent e;
}
now how do i create e with the constructor.
I hope u r getting my problem
|
|
|
|
|
class A{
{
CEvent e(TRUE,TRUE,NULL,NULL);
}
this creats a event that is initialy owned, manual reset, unnamed event, null security.
Hope i cleared ur problem.
"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|
|
It gives syntax error on compilation
|
|
|
|
|
Class A
{
CEvent e;
A() : e(NULL,NULL,NULL)
{
}
};
/Magnus
- I don't necessarily agree with everything I say
|
|
|
|
|
hmm thats a inline definition...
i dont wanna create my class object in that fashion & neither does that compile.
My class A has its own constructor
|
|
|
|
|
That is the syntax for calling membervaribles ctors, put it
in your class A's ctor.
/Magnus
- I don't necessarily agree with everything I say
|
|
|
|
|
This is the scenario
class A {
A(int,ClassB *b);
CEvent e;
}
In the implementation file ->
A::A(int,ClassB *b) {
What do i put here?
}
|
|
|
|
|
A::A(int,ClassB *b) :
e(NULL,NULL)
{
}
The actual params to e above is wrong, pass them as you like to
have them.
/Magnus
- I don't necessarily agree with everything I say
|
|
|
|
|
Ok that solves my problem, thanks
A new learning for the day
|
|
|
|
|
thats solves my problem thanx
|
|
|
|
|
I am not absolutely sure, but I believe that in this construction call, a temporary CEvent object is created, then an equality operation is used to make the e equal to it, and then the temporary object is deleted.
On a memory-constrict system this might cause a problem. A better way when you have members in your class that are not base types (classes or similar) and need to initialize them, is to always use a pointer to the type, and reserve memory from the heap by calling new .
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
I dont think that is the case, any code in the ctor for the object would then be run twice.
Also if you had pointer members allocated in the ctor and deleted in the dtor they would be pointing to garbage.
/Magnus
- I don't necessarily agree with everything I say
|
|
|
|
|
After a quick check, the case was verified: the constructor of the member class is called only once if it is declared after the ':' on the host class's constructor.
However, I prefer pointers
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
class A {
A()
{
e = new CEvent(TRUE,TRUE,NULL,NULL);
}
CEvent *e;
}
How about this.
"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|
|
that doesnt work i have tried that
|
|
|
|
|
Well i guess that is the easiest way to initialise anything. Any way just out of curiousity what is the compiler error you are getting.
did you put the following statement.
#include <afxmt.h>
<hr>"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|
|
Yup i did that it gives some error
|
|
|
|
|
You still did not specify what error you are getting perhaps that would be more helpfull.
"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|
|
I have already got the asnwer to my problem from magnus & time doesnt permit me to do ne more on it
|
|
|
|
|
Oops sorry didnt read that link... that is also a good answer.
"When death smiles at you, only thing you can do is smile back at it" - Russel Crowe (Gladiator)
|
|
|
|