|
Hello,
You can try to use this message,
BEGIN_MESSAGE_MAP(CButtonDlg, CDialog)
ON_WM_ERASEBKGND()
END_MESSAGE_MAP()
BOOL CDialog::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return CDialog::OnEraseBkgnd(pDC);
}
This member function is called to erase the background when any changes happens in window like resize or move.
I guess i will work.... Try this.... Good Luck...
Thanks and Regards.
SANTHOSH V
|
|
|
|
|
santhoshv84 wrote: BOOL CDialog::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return CDialog::OnEraseBkgnd(pDC);
}
This will not have any effect. This is same as you are not mapping it...
- NS -
|
|
|
|
|
Why did you repost, when my question was not answered yet?
See this[^]
- NS -
|
|
|
|
|
I have a problem with receive and send in MFC:
I have a program which named Server and a Client named program,After Client connect to Server and Two sides begin traslate data through socket,but when My Server goto receive before then Server Program error,I don't know a method to decide,please help me.
I live In VietNam and this is my homework,please help me
|
|
|
|
|
topic says all is there any?
thnx
|
|
|
|
|
there are dozens.
did you try searching this site? or Google?
|
|
|
|
|
i searched ... nothing , i wonder maybe i use bad key words !
|
|
|
|
|
actually i searched in articles for "jpg to bmp API" the answers was s.th else ! for example changing icons to ... !!! i also looked in my API book but i couldnt find , man plz hlp
|
|
|
|
|
If you don't need to write the JPEG decompression yourself,
here's the simplest way I know:
#include <atlimage.h>
...
CImage image;
image.Load(_T("c:\\some.jpg"));
image.Save(_T("c:\\some.bmp"), ImageFormatBMP);
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
do u know where can i get atlimage.h ??? CImage is a new class included with VC7 i think, but i use BC++
-- modified at 17:26 Thursday 25th October, 2007
|
|
|
|
|
V_shr wrote: CImage is a new class included with VC7 i think, but i dont use VisualStudio.NET
Ok, try this ...
ULONG dwToken;
Gdiplus::GdiplusStartupInput input;
Gdiplus::GdiplusStartupOutput output;
Gdiplus::Status status = Gdiplus::GdiplusStartup(&dwToken, &input, &output);
if(status == Gdiplus::Ok)
{
Gdiplus::Bitmap *pBitmap = new Gdiplus::Bitmap(L"c:\\some.jpg", FALSE);
CLSID bmpClsid;
GetEncoderClsid(L"image/bmp", &bmpClsid);
pBitmap->Save(L"c:\\some.bmp", &bmpClsid);
delete pBitmap;
Gdiplus::GdiplusShutdown(dwToken);
}
I took the GetEncoderClsId() function right from the GDI+ docs in the Platform SDK.
It looks like this:
int GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
{
UINT num = 0;
UINT size = 0;
ImageCodecInfo* pImageCodecInfo = NULL;
GetImageEncodersSize(&num, &size);
if(size == 0)
return -1;
pImageCodecInfo = (ImageCodecInfo*)(malloc(size));
if(pImageCodecInfo == NULL)
return -1;
GetImageEncoders(num, size, pImageCodecInfo);
for(UINT j = 0; j < num; ++j)
{
if( wcscmp(pImageCodecInfo[j].MimeType, format) == 0 )
{
*pClsid = pImageCodecInfo[j].Clsid;
free(pImageCodecInfo);
return j;
}
}
free(pImageCodecInfo);
return -1;
}
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
thnx , here its 3:00 pm , ill try it tomarrow
|
|
|
|
|
Please refer this[^]. Hope this will solve your purpose.
Regards,
Paresh.
|
|
|
|
|
Hello,
How do we know that array is emtry or not?
here is a piece of my code
char* pch = "";
char sEnglish[100] = "";
...
...
...
// if pch is "" and sEnglish is "" then
// this ((pch!="")||(sEnglish !="")) is true, why? it should not be true, it must be false, or am i doing wrong?
// if that is true, it fails on strcat("","")
if ((pch!="")||(sEnglish !=""))
{
strcat(sEnglish,pch);
}
how do we know that pch is ""? or not? and
why strcat function fails when both of input paramets are NULL?
thanks
-- modified at 16:00 Thursday 25th October, 2007
|
|
|
|
|
Try using STL strings instead.
std::string pch;
std::string sEnglish;
...
...
if(!pch.empty() || !sEnglish.empty())
sEnglish += pch;
|
|
|
|
|
thanks, but i am wondering
why strcat function fails when both of input parameters are NULL?
i am using strtok functins, that is why i need to use
char *pch;
char sEnglish[100],
or can we use string types for strtok function?
|
|
|
|
|
Gofur Halmuratov wrote: but i am wondering
why strcat function fails when both of input parameters are NULL?
They aren't "NULL". "" is a string literal containing an ASCII "NULL".
A NULL string would be
char *pch = NULL;
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
See here[^] for an example of getting the same results of strtok using STL.
|
|
|
|
|
Gofur Halmuratov wrote: how do we know that is pch is ""? or not?
In general, C arrays don't have a length attached to them so it's up
to you to keep track of array lengths and array contents.
In this case, since you're working with C "strings", which are arrays of chars,
you can use strlen()...
if (0 == strlen(pch))
{
// pch is empty
}
You can't compare C strings like this:
pch!="" <-- wrong! Here you're comparing two pointers!
You can use strcmp however:
if (0 = strcmp(pch, ""))
{
// pch is empty
}
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
thanks Mark,
it helped alot!!!
|
|
|
|
|
How can u compare the string using == operator
use strcmp function to compare the strings
Murali.S
|
|
|
|
|
Hi.
I need to load a dialog from a resource script, (.rc file), at runtime. I mean, the resource file is not in the project, it was created outside the project and then, at runtime, I have to bind a CDialog class with some DIALOG template present in this .rc file. Is it possible?
Thank you.
Demian.
"I have always wished that my computer would be as easy to use as my
telephone. My wish has come true. I no longer know how to use my telephone."
-Bjarne Stroustrup, computer science professor, designer of C++
programming language (1950- )
|
|
|
|
|
Well, anything is possible To load a script (text file) you need a compiler, basically a C-compiler. This will be messy. If you need to do heavy modifications of the resources at runtime I would instead recommend 1) loading compiled resources in a DLL and 2) using UpdateResource.
|
|
|
|
|
Thank you for answer.
Ok, I understand.
But 2 more questions, please.
1)
I have a resource file, and I have to compile it using, in example, VC compiler, ok?. What are the compiler options, (or where could I find it), to compile that script file into a dll. I mean without need to create a DLL project and so on. Because the guys that will create the resource script file, they don't know nothing about programming, they just put controls here and there using the VC 6.0 resource editor and nothing more. Then I will run, in example, a bat file to compile some given .rc files into a DLL.
2) Then that dll file will be load it at runtime by a VC program, (an OCX in particular), and it will use that dialog from dll and bind it to an existing CDialog derivated class.
Confusing?,
I thought in all this because we need to display many kind of dialogs, (and everyday a new one), and we want them outside the main project.
Maybe there's an easier way to handle this, but I can't figure out.
Thank you very much.
Demian.
"I have always wished that my computer would be as easy to use as my
telephone. My wish has come true. I no longer know how to use my telephone."
-Bjarne Stroustrup, computer science professor, designer of C++
programming language (1950- )
|
|
|
|
|
Ok, sounds reasonable. Compile the script.rc using rc (which is, I believe, in reality a preprocessor that converts stuff like BEGIN to { and END to }, DIALOG to a c struct and after that calling a C-compiler). The resource compiler produces a .res file, that you can link into a .dll with /DLL. Another option is to create a DLL project in MSVC and use the Project/Export makefile command in MSVC - you'll have a real fun experience trying to dechiper the output But it works
And then to load the dialog is a breeze; LoadLibrary and then LoadResource on the HMODULE returned, and then CreateDialog with the template loaded. Translate to the framework you're using.
|
|
|
|