|
Hmmm
I guess I found the problem but still not the answer...
I got an idea for the handle.
Maybe I set the wrong window handle to the 'SetWindowLong'.
So, I used the 'GetLastError' and got the problem...
There was a problem with the handle.
The 'SetWindowLong' function couldn't get the correct handle of the window,
and it replied the error code #, 1400.
Error code 1400 means 'Wrong window handle(???)'.
Well, How should I set/get the right handle.
I know that the SetLayeredWindowAttributes function can only be used for
parent windows, and not able for the child windows.
I still don't have it done to use the Attach(), but would it work?
Should I use this function to give the right handle to the 'SetWindowLong'?
Thanks a lot for your help all of you!!!
Always be happy!
|
|
|
|
|
I have a struct that looks like this:
struct ViewportPos
{
RECT rcPos;
long Index;
};
I have a list of these in my class, and I am trying to sort them so that they sort first by the left element in the RECT, then by the top. I've got to the point of trying to specify my own function for sorting ( i.e. at this point I've not done the trivial bit of comparing two RECTs ).
inline bool RectSort(ViewportPos vpi1, ViewportPos vpi2)
{
RECT rc1 = vpi1.rcPos;
RECT rc2 = vpi2.rcPos;
return FALSE;
}
then in my function below this:
std::stable_sort(m_Viewports.begin(), m_Viewports.end(), RectSort);
I get a bajillion template errors relating to basic_string, like this:
C:\My Code\VBScene\VBWindow.cpp(860) : warning C4101: 'rc1' : unreferenced local variable
C:\My Code\VBScene\VBWindow.cpp(861) : warning C4101: 'rc2' : unreferenced local variable
C:\Microsoft Visual Studio\VC98\INCLUDE\algorithm(629) : error C2784: 'class std::basic_string<_E,_Tr,_A> __cdecl std::operator +(const class std::basic_string<_E,_Tr,_A> &,const _E)' : could not deduce template argument for 'const class std::basic_
string<_E,_Tr,_A> &' from 'class std::list<struct viewportpos,class="" std::allocator<struct="" viewportpos=""> >::iterator'
C:\Microsoft Visual Studio\VC98\INCLUDE\algorithm(620) : see reference to function template instantiation 'void __cdecl std::_Insertion_sort_1(class std::list<struct viewportpos,class="" std::allocator<struct="" viewportpos=""> >::iterator,class std:
:list<struct viewportpos,class="" std::allocator<struct="" viewportpos=""> >::iterator,bool (__cdecl *)(struct ViewportPos,struct ViewportPos),struct ViewportPos *)' being compiled &tc
and then this at the bottom
C:\Microsoft Visual Studio\VC98\INCLUDE\algorithm(620) : see reference to function template instantiation 'void __cdecl std::_Insertion_sort_1(class std::list<struct viewportpos,class="" std::allocator<struct="" viewportpos=""> >::iterator,class std:
:list<struct viewportpos,class="" std::allocator<struct="" viewportpos=""> >::iterator,bool (__cdecl *)(struct ViewportPos,struct ViewportPos),struct ViewportPos *)' being compiled
Am I right in thinking I cannot create a functor that accepts my own struct ? OR am I just doing something wrong ?
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|
|
From Stroustrup p 539: The standard list does not provide random access iterators, so lists should be sorted using the specific list operators (17.2.2.1)
Let's never tell anyone about this, OK ?
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|
|
Hi all,
Please explain to me about _StreamPtr ...
About performance, functions and ...
Thanks
My month article: Game programming by DirectX by Lan Mader.
Please visit in: www.geocities.com/hadi_rezaie/index.html
Hadi Rezaie
|
|
|
|
|
depends on what you want to do with it ?
|
|
|
|
|
I wanna load and save bitmap in Access 2000 database, please help me ...
My month article: Game programming by DirectX by Lan Mader.
Please visit in: www.geocities.com/hadi_rezaie/index.html
Hadi Rezaie
|
|
|
|
|
Hi all!
I made an simple application on my computer which uses "small font"; When I bring this program to a computer that uses large font, some buttons are missing. and some buttons with long caption does not display the caption correctly. Is there a way to avoid this problem.
I am thinking of choosing a font that is not true type, so it won't grow or shrink with windows, but not sure if it will work.
Can we detect windows' font size and change dynamically?
Thanks
Vu
vucsuf
|
|
|
|
|
this code can be used to detect the settings...
CDC ScreenDC;
ScreenDC.CreateIC(_T("DISPLAY"), NULL, NULL, NULL);
const int x = ScreenDC.GetDeviceCaps(LOGPIXELSX);
const int y = ScreenDC.GetDeviceCaps(LOGPIXELSY);
if (x == 96 && y == 96)
{
}
else if (x == 120 && y == 120)
{
}
else
{
}
the only real workaround for this problem is to use, depending on the small / large font setting, two different dialog templates.. YUCK...
i don't know any better solution (other than banning the LARGE fonts).. so i would be pleased if anybody knew a better workaround..
Bernhard
"The remarkable thing about my mother is that for thirty years she served us nothing but leftovers. The original meal has never been found." Calvin Trillin
|
|
|
|
|
Is there a function like pow (for doubles) for integers?
I could of course use the pow function, but there just _must_ be some function like it for other datatypes too.
Or is the fastest way to calculate x raised to the power of y by making a loop and multiplying x with itself y times? (faster than pow?)
Sprudling
|
|
|
|
|
This is right out of the MSDN.
//-----------------------------
pow
template<class t="">
complex<t> pow(const complex<t>& x, int y);
template<class t="">
complex<t> pow(const complex<t>& x, const T& y);
template<class t="">
complex<t> pow(const complex<t>& x, const complex<t>& y);
template<class t="">
complex<t> pow(const T& x, const complex<t>& y);
The functions each effectively convert both operands to the return type, then return the converted x to the power y. The branch cut for x is along the negative real axis.
//------------------------------
Vu
vucsuf
|
|
|
|
|
Hi all,
I wanna create array of my class, with dynamic sizes ...
First, i read number from my file:
const int lLoop = getc(fp);
Now, i wanna create my array with lLoop size ...
But i got two errors about my array size !!!
MySoundTemplate *pSound[lLoop];
for(int i = 0; i < lLoop; i++)
pSound[i] = new MySoundTemplate;
How can i slove it ?
Please help me ...
My month article: Game programming by DirectX by Lan Mader.
Please visit in: www.geocities.com/hadi_rezaie/index.html
Hadi Rezaie
|
|
|
|
|
lLoop is "not constant enough" (it is not known at compile time)
My advice is to use STL vector. It is the easiest way to handle dynamic arrays.
I vote pro drink
|
|
|
|
|
MySoundTemplate *pSound[lLoop];
That is not going to work, because you're trying to create an array of pointers, and you can't - the compiler doesn't know the value of lLoop. You wanted to do this:
MySoundTemplate * pSound = new SoundTemplate[lLoop];
Having said that, I second the other poster - you should use STL vector.
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|
|
Hi Christian
MySoundTemplate * pSound = new SoundTemplate[lLoop];
This code won't work ...
I must use of STL vector ...
Thanks ...
My month article: Game programming by DirectX by Lan Mader.
Please visit in: www.geocities.com/hadi_rezaie/index.html
Hadi Rezaie
|
|
|
|
|
MySoundTemplate * pSound = new SoundTemplate[lLoop];
This code won't work ...
Not unless SoundTemplate is derived from MySoundTemplate.
MySoundTemplate * pSound = new MySoundTemplate[lLoop];
will work if MySoundTemplate is a class this line can see.
I must use of STL vector ...
It's better anyhow. You should consider how you will use the list, list may be a better option.
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|
|
Yes, yes, i know ...
My wrong was in typing ...
I mean:
MySoundTemplate * pSound = new MySoundTemplate[lLoop];
This code won't work, too.
My month article: Game programming by DirectX by Lan Mader.
Please visit in: www.geocities.com/hadi_rezaie/index.html
Hadi Rezaie
|
|
|
|
|
This code won't work, too.
There is no reason in the world for this not to work, maybe you should tell me what the errors are ?
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|
|
Just in case you missed the advice, I'd recommend STL vector (or perhaps list), unless the cost of copying a 'MySoundTemplate' objec tis very high (in which case vector can be expensive).
-----------------------
Reg : "Well, what Jesus blatantly fails to appreciate is that it's the meek who are the problem."
|
|
|
|
|
Hello, the codegurus around the world.;)
How about CPtrList or CPtrArray?
I think that these also works.
Have a nice day!
-Masaaki Onishi-
|
|
|
|
|
How to get RGB data for pixels from bitmap?
For every pixels, and write them into txt file
Not using GetPixels, only from Bitmap
|
|
|
|
|
If you mean a Bitmap (GDI+), then use GetData. The next issue of WDJ will hopefully have an article covering all this.
If you mean CBitmap, you need to create a DIBSection. If you have a bitmap already, then copy it into a DIBSection and access the data that way. If you're creating it, create a DIBSection. This site has several DIBSection wrappers, from memory. It certainly has one.
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|
|
I have LPBITMAPINFOHEADER structure (it's a frame from avi file),
i can save it as bmp file, but i need array of pixels only,
like this:
12 11 34 ....
32 11 22 ....
.............
22 44 44 ....
and save it as txt file
|
|
|
|
|
If it's a BITMAPINFOHEADER and not a BITMAPINFO, then you don't have a bitmap at all, just a descriptor of what dimensions one should be. Try casting to BITMAPINFO and accessing bmiColors. The first member of BITMAPINFO is BITMAPINFOHEADER, so a cast from BI to BIH will work fine where a BIH is needed.
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|
|
I tryed, but i don't know how to get every pixels at all (array of RGB)!
If you know how it works, please help me.
I really need it.
Thanks
|
|
|
|
|
It's an array of RGBQUAD, so it's a pointer that contains the values for each pixel as red/green/blue/reserved. Generally Windows bitmaps go bottom to top, left to right, I presume this is the case here.
So to get the values you could do something like:
BITMAPINFO * pBMI = (BITMAPINFO*)MyBitmapInfoHeader;
RGBQUAD * pQuad = pBMI->bmiColors;
for (int x = 0; x < pBMI->bmiHeader.biWidth)
for (int y=0; y < pBMIHeader.biHeight)
{
unsigned char Red = *pQuad;
++pQuad;
unsigned char Green = *pQuad;
++pQuad;
unsigned char Blue = *pQuad;
++pQuad;
++pQuad;
}
That is untested, but you get the idea.
Christian
As I learn the innermost secrets of the around me, they reward me in many ways to keep quiet.
Men with pierced ears are better prepared for marriage. They've experienced pain and bought Jewellery.
|
|
|
|