|
Can anyone give me any info or good sites to obtain information on creating C++ programs that are skinnable? I am currently a student starting my C++ intro class. And I do not want to create the same plan programs as the rest of the class.
Thank you,
Kulwen
|
|
|
|
|
There are at least two articles here on CP.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
|
|
|
|
|
Hello friends,
User can stop the device through the "unplug or eject hardware" application (on the taskbar) in Windows 2000.
How can I use this function and stop the device in my application ?
Please give me a suggestion, thanks a lot!
Good day.
Eric Lee
|
|
|
|
|
im using a WH_CBT hook (passing in the value from GetCurrentThreadId() in SetWindowsHookEx)... and im catching the message HCBT_CREATEWND.
now, im trying to catch the creation of ALL menus in my program, but only some are caught:
1) the top menu i click on first to enter the menu loop is NEVER caught in my hook
2) the right-click menu in the caption bar almost always gets caught
3) the other main menus sometimes get caught in the hook
can someone explain what i'm doing wrong, or lead me to an example/tutorial?
thanks
- Roman -
|
|
|
|
|
My application has a serious memory leak problem. It is because I am not able to release the memory consumed by the memory context. In general I save an image in 2 memory context variables. One is used to hold latest data and the other one holds previous data(used for undo purpose). I process the image in the memory context and after processing i display it on the device context. I am reusing the same memory context variables for processing the image.
But i believe reusing of memory context causes memory leaks therefore i thought I would the image information in an array. I will process that array and save in the memory context and then display it on the device context. But in order to do this I tried the following ways to release the memory consumed by the memory context.
1) memDC.SelectObject(oldbmp);
2) ReleaseDC(memDC);
3) memDC.DeleteDC();
But i am still facing the memory leak problem. Please confirm if reusing memory context is possible and how to release the memory consumed by the memory context.
Thanx in advance.
Einstein's Assistant
|
|
|
|
|
you're creating and deleting the DC over and over ? Why ?
I don't see why you could not have a CDC as a member, and I'd suggest your leak is elsewhere, probably to do with the way you handle bitmaps. What OS are you using ? W2000/XP catch GDI leaks for you, and W98 comes with a tool to watch GDI leaks specifically, so you can see if that is what you are leaking. You'll know soon enough, because your whole system will stop drawing stuff ( buttons, windows, etc. )
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
|
|
|
|
|
I am working Win2K. Currently I am not deleting the DCs. I am just reusing the memory context to bitblt the processed output to the screen. I realized that my application has a leak by using windows task manager. And after lot of memory is consumed for pull down menus i just see black box. So I guess it is GDI memory leak.
I am not creating and deleting DC over and over again. I just create them once when a image is opened. I.e I call the saveimg method which saves the image in the memory context. I want to release memory used by memory context because I fear that reusing memory context is one of the cause of memory leak. To work around this problem I thought I would copy the pixel color values in an array and then release the memory consumed by the memory context. But unfortunately I am not able to release the memory by any the three methods.
Thanx in advance.
Einstein's Assistant
|
|
|
|
|
moswal wrote:
I am working Win2K.
Therefore you are not leaking GDI resources - Win2000 will clean them for you, as I said.
moswal wrote:
I realized that my application has a leak by using windows task manager. And after lot of memory is consumed for pull down menus i just see black box. So I guess it is GDI memory leak.
Not under W2000.
moswal wrote:
But unfortunately I am not able to release the memory by any the three methods.
I'm pretty sure that's because you're barking up the wrong tree.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
|
|
|
|
|
But is it true that reusing Memory context object does not cause any memory leak.
Thanx in advance
Einstein's Assistant
|
|
|
|
|
Yes, that is also true, so long as you manage it's state effectively. Either way, the point is that this is not your problem in this case.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
|
|
|
|
|
Hi,
I am still unable to pin down the source of memory leak. If I upload my source code can u help me to solve the memory leak problem.
Thanx a lot in advance.
Einstein's Assistant
|
|
|
|
|
Of course. Reask the question as a new post, so others see it too, in case I don't spot the problem.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
Half the reason people switch away from VB is to find out what actually goes on.. and then like me they find out that they weren't quite as good as they thought - they've been nannied. - Alex, 13 June 2002
|
|
|
|
|
Hi again,
I uploaded my whole application in yahoo's briefcase. Please go through it and help me spot the source of memory leak.
Thanks in advance.
userid : moswal0071
password : cooldude
Einstein's Assistant
|
|
|
|
|
Finally I got my .Net copy today, after 2 hours of installation and woohooooo I'm using .Net!
But wait, cannot create a VC++ project, "VC package is unavailable or not registered.", I guess that's because my old VC++ 6.0 is still on this machine, so I removed VC++6.0 and REINSTALLED .Net, there went another 2 hours(who cares since I don't have school today), now it's working!
I spent a little time to play with the new VC++ IDE, it's cool and all, but I quickly found something different.
The first thing is that I cannot assign "const" keyword to member functions when I create them using "Add->Member function", I have to add "const" keyword manually to both header file and cpp file after the member functions have been created, which sounds awkward to me.
Another thing, it's no big deal but still makes me somewhat annoying. In VC++ 6.0 we can delete a function by right-clicking on the function name(on "Class view") and selecting "delete", it will automatically remove the function definition in header file and comment implementation out in cpp file, very convenient, now this feature is gone, or that I cannot find it existing.
If anyone know how to solve those problem in .Net VC++ IDE please let me know. Thanks.
|
|
|
|
|
You are better off adding things by hand anyhow - they were probably removed because the wizards that did them were notorious for stuffing up.
I don't even use a wizard to add interfaces to an ATL object - I like to do it by hand and know exactly what is going where. The ATL wizard is notorious for dying half way through and leaving fragments throughout a project.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
|
|
|
|
|
how can i stop my application from freezing when its processing a function?
any help will be greatful. Thanks.
|
|
|
|
|
put it inside a thread... look up CreateThread on Platform SDK or check out one of the system sections on CP
- Roman -
|
|
|
|
|
got any examples on CreateThread?;P
|
|
|
|
|
You should rather use _beginthread[ex]. Look in MSDN for example.
Michel
It is a lovely language, but it takes a very long time to say anything in it, because we do not say anything in it, unless it is worth taking a very long time to say, and to listen to.
- TreeBeard
|
|
|
|
|
I am facing two problems:
1) displaying and scaling image files of *.TIFF, *.BMP, *.JPG formats
2) conversion of grayscale images into bitonal representations (smaller size, better compression).
Does anyone know about any cool open source graphics libraries, algorithms, etc...
Thanks a bunch in advance.
Kirill
|
|
|
|
|
Hi,
Try this url. It gives you all the information that u need. In fact the whole application does exactly what u want.
http://www.codeguru.com/bitmap/CPicture.html
I suggest you use GDI+ libraries. They are really to use and you can save,load and modify the images much more easily compared to the method used by the author of CPicture class.
Einstein's Assistant
|
|
|
|
|
I've done a series of articles on image processing in GDI+ which will tell you everything you need to know, here on CP.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
|
|
|
|
|
I am trying to dynamically size the column widths of a MSFlexGrid control. Presently, the code I'm using is this (which was hard enough to figure out):
CDC * dc;
dc = this->GetDC();
dc->SetMapMode( MM_TWIPS );
CRect rc;
m_TheGrid.GetClientRect( &rc );
dc->DPtoLP(&rc);
int Width = rc.Width() / (CellsPerRow + 1);
m_TheGrid.SetColWidth(1, Width );
Width = m_TheGrid.GetColWidth(1);
for ( int i=1; i < CellsPerRow+1; i++ )
{
m_TheGrid.SetColWidth(i, Width );
}
int Remainder = rc.Width() - Width * CellsPerRow;
m_TheGrid.SetColWidth(0, Remainder );
What I've noticed is that even though I set a particular size like this:
m_TheGrid.SetColWidth(1, 332);
the size read via GetColWidth() is usually something different, like 330. That isn't too much of a problem, since I set one column, read what was actually set, then set all the columns (except the first one) to that value. I then account for errors by putting the remaining size into the first column.
BUT:
The size that is returned by the GetClientRect() call does not encompass the entire space available. That is, when I've got all my columns layed out, I still have stubstantial space available on the right.
I was halfway expecting to have LESS room because of a scroll bar. But the size reported by GetClientRect() underreports.
Does anyone have an idea about what is happening here?
I don't think it should matter, but I've set the font in this control to fixedsys.
Ron
|
|
|
|
|
Hi,
given:
CStringArray* pArray;
CStringArray aArray;
and I have useful data in pArray. Now I want to accumulate multiple pArray's in an aArray.
aArray.Append(pArray)
but the argument of CStringArray::Append requires a CStringArray& not a CStringArray*.
How can I cast it?
Thank you
R.
|
|
|
|
|
aArray.Append(*pArray)
-c
Cheap oil. It's worth it!
|
|
|
|