|
Hello, I need and example code of sorting ListView items by Name, using SortItems() function.
Any help appreciated,
Thanks,
Deian
|
|
|
|
|
OK, bitmaps are just dandy. Most of the time I'm plenty happy enough with them and the standard microsoft static control can be used nicely and easily for drawing a contained bitmap or icon. WHY NOT GIF/JPG?
I'm working on an application that has about 20 pictures I have to display at one point or another. They're all pretty much the same size and all 256 color. Anyway, bitmaps are just too big and adding this in to the resources pushes my exectuable (statically linking MFC) up to almost 5 MEG! A LOT of that is the bitmaps. I really would rather use GIF's. They're a lot smaller and since they can have transparent backgrounds it's easy to have them drawn transparent. It's funny but this is really the first time I've run into this and was actually amazed that it was even an issue.
Where is the MFC standard control for displaying GIF/JPG?!? I MUCH prefer C++ over Visual Basic but the basic picture control for VB does GIF/JPG just fine... easily. Why is this not part of MFC? Does someone know of a simple control I could use without re-inventing the wheel? How about a more advanced version that would resize the picture when I resize the control? How about one that includes "hot spots" where I could pop up messages or do "something" when they roll over it with the mouse?
Make me a believer again that MFC is better than VB... (I'm knocking MFC. NOT C++/COM/ATL/STL, yada yada yada)
Thanks,
Matt Philmon
|
|
|
|
|
I know some of the GDI APIs got JPG support in Win 98. I remember seeing mentions of this in the past, but it was a while ago so I couldn't name exact functions. Search the Platform SDK for "JPEG" and you should be able to find them.
--Mike--
http://home.inreach.com/mdunn/
The preferred snack of 4 out of 5 Lounge readers.
|
|
|
|
|
OLEPicture is the sollution. Search it on MSDN.
|
|
|
|
|
the merging of the two, then all of a sudden it wasn't. I believe this is why it was called W2000, which from a marketing POV makes it the follow on from 95/98.
I think it rocks too, I hate having to use W98 instead, but as it is more unstable, it is better for testing code to make sure IT is stable.
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
Ooops - if my other post came up, it's because I was trying to click reply on two things at once. I *hate* that IE pops Windows to the top, it is so frustrating sometimes.
The next version of MFC has jpeg/gif/etc support, in the meantime to get more comprehensive control than the control someone else suggested, go to www.apintlib.de, and you'll be able to read/write them and a lot of other formats as well.
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
www.paintlib.de you mean no?
---
"every year we invent better idiot proof systems and every year they invent better idiots"
|
|
|
|
|
Yes, thanks. I actually got an email from the original poster and corrected it in a reply email, but I *should* be more careful, especially with URL's.
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
I am trying to set the text color of a number of CEdit and CComboBox controls whose state is not Enabled.
I can override the background colour, overrriding the OnCtlColor method, but not the text colour, whatever I
do it uses the SYSTEM Grey Color. I can set the Sytem Grey Color to black, but this effect everything!!
Any ideas would be appreciated
Marc Clarke, marclark@lehman.com
|
|
|
|
|
When an edit control is disabled Windows treats the control like a static control. Test for CTLCOLOR_STATIC.
|
|
|
|
|
Thanks, that indeed traps the message, but calling SetTextColor on the device context has no effect the text remains Grey.
I think I have a workaround. Thanks anyway
Marc
|
|
|
|
|
Running an MFC app, using sockets. The send socket appears to consume system resources for no apparent reason. when the send/recieve is complete and the sockets released so are the resources. Should this socket have its buffers released during run time or is there something obvious that I am missing out on. If this is not the case then what else could consume system resources at a rapid rate.
Thanks in advance for any replies.
Brian
****************************
* brianh@ee.bath.ac.uk *
****************************
|
|
|
|
|
Wild theory.
If you're sending more than, say 512 bytes at a time, the socket will probably have to fragment the data to get within the current Maximum Trasmission Unit (MTU) limits for internet packets. I have suspected resource problems in the past related to this fragmentation.
No proof on this, but maybe you can experiment. Win9x may be more succeptable.
There may be other factors involved as well, such as the rate at which packets are being received. ?
|
|
|
|
|
<<< In the name of GOD >>>
Hi.
I want to use try and catch in my program for managing errors.
void CEditorDlg::Saving()
{
UpdateData(TRUE);
CFileException *fileErr;
CFileDialog fd(FALSE, "*.txt", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Text file (*.txt)|*.txt||", this);
CFile file;
if(fd.DoModal() == IDOK)
{
try
{
file.Open(fd.GetPathName(), CFile::modeCreate | CFile::modeWrite, fileErr);
file.Write(m_MainEdit, m_MainEdit.GetLength());
file.Close();
}
catch(CFileException *err)
{
file.Abort();
err->ReportError();
}
}
}
But when in saving file was any error, this code won't work.
Please tell me, how can i use of try/catch for managing ERRORS.
Thanks.
Hadi Rezaie
|
|
|
|
|
You should put in a catch for all cases like this
catch(...)
that will get called for any errors not specifically covered.
Christian
The content of this post is not necessarily the opinion of my yadda yadda yadda.
To understand recursion, we must first understand recursion.
|
|
|
|
|
>You should put in a catch for all cases like this catch(...)
I disagree - in VC you will leak memory if CException based pointers are thrown, and you might catch all sorts of processor traps that you can't deal with.
Not everyone agrees with me on this one, so I just post this as a caveat emptor.
|
|
|
|
|
You should pass a pointer to an existing exception object, then check the return value of the call to open - if FALSE, check the exception object. This is an exception that is filled in, not thrown. From the MSDN:
CFile f;
CFileException e;
char* pFileName = "test.dat";
if( !f.Open( pFileName, CFile::modeCreate | CFile::modeWrite, &e ) )
{
#ifdef _DEBUG
afxDump << "File could not be opened " << e.m_cause << "\n";
#endif
}
In your code, you are passing in an uninitialized pointer - thats bound to be problematic.
|
|
|
|
|
Two things.
First, you must delete any thrown CException based exceptions by calling the Delete() function inside your catch handler.
e->Delete();
Second, You are only passing a pointer to a CFileException object. You need to pass an actual one. It would be better to just use the Constructor based method instead, which will create the exception for you if there is an error.
|
|
|
|
|
<<< In the name of GOD >>>
Hi.
I have program(Dialog based) that in this program i used of Status bar control.
I want to change status bar position in the dialog.
More explain: I want to change position when event is OnSize, OK ?
I wrote it but this code won't work.
::MoveWindow(wnd_Status.m_hWnd, 10, 10, 20, 20);
Please help me ...
Hadi Rezaie
|
|
|
|
|
How can I detect the answer of a modem that I called from mine immediately after dialing the phone number (during PROCEEDING of call state and not at the end)?
THANKS
|
|
|
|
|
There is a Carrier Detect (CD) line that will go high when the connection is made.
If you are using a 3rd party ActiveX control or the MSComm control, there is an event that will fire when the status of the line changes. You can then retrieve the status of the CDHolding property to see whether the connection has been made or not.
|
|
|
|
|
Hello!
I'm trying to insert Simple MAPI to my Application (without using the CDocument related Component from Component Gallery). There's a quite good example in the MSDN Library (just what I need) but the Linker always exits with
"mapitestView.obj : error LNK2001: unresolved external symbol _MAPISendMail@20"
I could reproduce the error with a simple wizard generated Standard SDI App, in which I inserted my several lines of code.
I included mapi.h and added mapi32.lib to the linker settings.
I'd be very glad if someone could give me some advice on how to avoid this error.
bye
Matthias
|
|
|
|
|
Get rid of mapi32.lib from the linker settings. You can't call the MAPI functions directly, you need to do this:
typedef ULONG (FAR PASCAL *MAPIFUNC) (LHANDLE lhSession, ULONG ulUIParam,
lpMapiMessage lpMessage, FLAGS flFlags,ULONG ulReserved);
const HINSTANCE hMAPILib = ::LoadLibrary("MAPI32.DLL");
MAPIFUNC lpMAPISendMail = (MAPIFUNC)GetProcAddress(hMAPILib, "MAPISendMail");
then when you want to call it:
ULONG result = lpMAPISendMail(0, 0, &mail, NULL, 0);
...
VERIFY(::FreeLibrary(hMAPILib));
Should do the trick.
~Kevin
|
|
|
|
|
How can I convert int to string and float to string?
Thank you
Kyousuke
|
|
|
|
|
You can use the itoa function (integer to ascii) to convert an integer to a string.
char *pReadBuffer;
_itoa(m_yourInteger, pReadBuffer, 10);
greetz
|
|
|
|