|
you can try using CClientDC to get ONLY the Client Area
|
|
|
|
|
Hello,
[1]
I detected the following problem with the COleDateTime ==, <, >, <=, >= operators.
A COleDateTime object is internally represented by a double. So, when comparing two COleDateTime's it is in fact two doubles that are being compared and this means trouble.
I saw that 2 COleDateTime's that were perfectly equal (in human readable format) were indicated as not equal with the COleDateTime == operator.
Solution is to do the comparing yourself based on a stringcompare of the COleDateTimes.
These are the function's that I am using now.
BOOL DatesEqual(COleDateTime &odt1, COleDateTime &odt2)
{
CString str1 = odt1.Format();
CString str2 = odt2.Format();
return (!str1.Compare(str2));
}
BOOL DateSmallerThan(COleDateTime &odt1, COleDateTime &odt2)
{
if (DatesEqual(odt1, odt2)) return FALSE;
else return odt1 < odt2;
}
BOOL DateGreaterThan(COleDateTime &odt1, COleDateTime &odt2)
{
if (DatesEqual(odt1, odt2)) return FALSE;
else return odt1 > odt2;
}
BOOL DateSmallerThanOrEqual(COleDateTime &odt1, COleDateTime &odt2)
{
if (DatesEqual(odt1, odt2)) return TRUE;
else return odt1 < odt2;
}
BOOL DateGreaterThanOrEqual(COleDateTime &odt1, COleDateTime &odt2)
{
if (DatesEqual(odt1, odt2)) return TRUE;
else return odt1 > odt2;
}
[2]
Another aid in programming more accurate when using COleDateTimeSpan's is the following.
Suppose you want to produce a sequence of 15 minute ColeDateTime's, starting at some point in time. Normally, one would program this something like:
COleDateTimeSpan span;
span = COleDateTimeSpan(0,0,15,0);
ColeDateTime StartTime, DateTimeWalker;
StartTime = ...;
DateTimeWalker = StartTime;
for(int i=0; i<NR_OF_QUARTERS; i++)
{
...
DateTimeWalker += span;
}
However, it is more accurate to replace the body of the loop by:
{
COleDateTimeSpan dtsSpan(0,0,i*15,0);
COleDateTime TimeToUse = StartTime + dtsSpan;
...
}
This way, no error is accumulated during the loop, resulting in an almost perfect value for the variable TimeToUse even for the last loop iteration.
Anyone (dis)agrees with this?
Other ideas?
Bye
Geert
|
|
|
|
|
Sounds good to me. Anytime you work with floating point numbers, error accumulation is a problem.
|
|
|
|
|
Please, answer the topic question. The task is to change a window style for region (regions) of a dialog (window, as you wish). for example some part of window is lowered and another is rised (ore something else).
Is it possible in principle without creating addtional controls???????????????????????????
|
|
|
|
|
If you mean window's styles, like WS_DLGFRAME, you can't apply the style to regions of a single window.
What you can do is creating multiple windows, each one with a different style, then define a window region for each one, and handle messages like WM_MOVE as if they all were a single window. See SetWindowRgn() on MSDN.
That's a hard task however!
Paolo
------
"airplane is cool, but space shuttle is even better" (J. Kaczorowski)
|
|
|
|
|
Use the API function DrawEdge
Use the following flags to do your stuff :-
BDR_RAISEDINNER
BDR_SUNKENINNER
BDR_RAISEDOUTER
BDR_SUNKENOUTER
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
Nish is a BIG fan of Goran Ivanisevic
|
|
|
|
|
|
Hi all,
I'm writing Dialog-based program,
I loaded toolbar in my program, toolbar now in top and left on the dialog as default ...
How can i put it in top and right on my dialog ?
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
|
|
|
|
|
I have a dialog box that works perfect in debug. But when i build it in release and the dialog box does will not show. I do not get any errors. Any body have any idea how i can debug this problem.
thank you
|
|
|
|
|
You need to build your release version with debug symbols. Goto your project settings, select the release version.
In the C/C++ tab put the debug info to the level required (usually maximum)
In the link tab select the debug category and enable debug info.
You should then rebuild your project. At the call to DoModal() step into the code and see why its failing.
Usually the problems between debug/release can be down to the debug version initialising variables to 0. This does not happen in the release version, so you should check that variables have been inialised correctly.
Roger Allen the man
|
|
|
|
|
thank you for the reply but i am having a problem with the debug settings.
I do not have a maximum for debug info
all i have is
none
line numbers only
c7 compatible
program database
program database for edit and continue
I have tried all settings and the program will not compile correctly or when i run it i get a message " No Debug Info..."
these are my settings
/nologo /MD /W3 /GX /ZI /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_AFXDLL" /D "_MBCS" /Fp"Release/ildococx.pch" /Yu"stdafx.h" /Fo"Release/" /Fd"Release/" /FD /c
thank you again
|
|
|
|
|
I wanted to get a checksum of a file.
when I wrote the following function with "#define READ_BUFFER_SIZE 1024"
It didn't get the right checksum for very big files.
I changed it to "#define READ_BUFFER_SIZE 2048"
and it worked!
can anyone please explane the reason for it?
then you.
Aviv.
BOOL FileCheckSum(CString FileName, unsigned long *Sum/*UINT32 * Sum*/)
{
#define READ_BUFFER_SIZE 2048//1024
FILE *fp;
char DataBuffer[READ_BUFFER_SIZE];
INT32 length;
fp=fopen(FileName,"r");
if(fp==NULL)
return FALSE;
*Sum=0;
while(!feof(fp))
{
/* Reset the data buffer before reading */
for(int i=0;i<read_buffer_size;i++)
databuffer[i]="0;
" length="fread(DataBuffer,1,READ_BUFFER_SIZE,fp);
" while="" (length="">0)
{
if(DataBuffer[length]=='\n')
*Sum += '\r'; //need to add CR to count for every LF since MC does it
*Sum += DataBuffer[--length];
}
}
/* Add 1 to the calculated CheckSum (agreed with the BMDS) */
*Sum += 1;
fclose(fp);
return TRUE;
#undef READ_BUFFER_SIZE
}
avivhal
|
|
|
|
|
I wanted to get a checksum of a file.
when I wrote the following function with "#define READ_BUFFER_SIZE 1024"
It didn't get the right checksum for a certain very big file(it worked fine for smaller files).
I changed it to "#define READ_BUFFER_SIZE 2048"
and it worked for the very big file as well!
can anyone please explane the reason for it?It shouldn't metter what the size of the buffer is ,so I don't understand.maybe it's a bug in the OS?!
thank you.
Aviv.
BOOL FileCheckSum(CString FileName, unsigned long *Sum)
{
#define READ_BUFFER_SIZE 2048
FILE *fp;
char DataBuffer[READ_BUFFER_SIZE];
INT32 length;
fp=fopen(FileName,"r");
if(fp==NULL)
return FALSE;
*Sum=0;
while(!feof(fp))
{
/* Reset the data buffer before reading */
for(int i=0;i<read_buffer_size;i++)
databuffer[i]="0;
" length="fread(DataBuffer,1,READ_BUFFER_SIZE,fp);
" while="" (length="">0)
{
if(DataBuffer[length]=='\n')
*Sum += '\r'; //need to add CR to count for every LF since MC does it
*Sum += DataBuffer[--length];
}
}
/* Add 1 to the calculated CheckSum (agreed with the BMDS) */
*Sum += 1;
fclose(fp);
return TRUE;
#undef READ_BUFFER_SIZE
}
avivhal
|
|
|
|
|
I forgot a line in the function so here it is..........:
I wanted to get a checksum of a file.
when I wrote the following function with "#define READ_BUFFER_SIZE 1024"
It didn't get the right checksum for very big files.
I changed it to "#define READ_BUFFER_SIZE 2048"
and it worked!
can anyone please explane the reason for it?
then you.
Aviv.
BOOL FileCheckSum(CString FileName, unsigned long *Sum)
{
#define READ_BUFFER_SIZE 2048
FILE *fp;
char DataBuffer[READ_BUFFER_SIZE];
INT32 length;
fp=fopen(FileName,"r");
if(fp==NULL)
return FALSE;
*Sum=0;
while(!feof(fp))
{
/* Reset the data buffer before reading */
for(int i=0;i<read_buffer_size;i++)
databuffer[i]=0;
length =="" fread(databuffer,1,read_buffer_size,fp);
while="" (length="">0)
{
if(DataBuffer[length]=='\n')
*Sum += '\r'; //need to add CR to count for every LF since MC does it
*Sum += DataBuffer[--length];
}
}
/* Add 1 to the calculated CheckSum (agreed with the BMDS) */
*Sum += 1;
fclose(fp);
return TRUE;
#undef READ_BUFFER_SIZE
}
avivhal
|
|
|
|
|
VC++ : multi-language application with resource DLL
Hello !
I would like to create a VC multi-language application with language
resource DLL.
It's very easy for the main program, there is many exemple.
In the function CxxxApp::InitInstance() I add :
HINSTANCE hRes = NULL;
LoadLibrary("languFR.dll");
if(hRes)
AfxSetResourceHandle(hRes);
But my program use DLL and when I try to load a resource DLL into a DLL, my
software lose its string table !
Could you help me ?
|
|
|
|
|
Hi,
I have created a class derived from CListBox but when I use the CWnd::GetStyle() method (inside or outside my class), I can't see if my listbox has a border or not... is it a bug from Visual C++ 6.0 ?
I also used ::GetWindowLong() function, but the result is the same.
Thanks in advance.
|
|
|
|
|
I apologize if this has been asked before, but is there a way to make the existing clistview class have more than one text line, or is there a class available that allows this? I want to be able to have multiple lines of text in one row, and use \n to force the next line
eg. display "One\nTwo\nthree" in a cell, and have it look like this:
-----------
|One |
|Two |
|Three |
-----------
|
|
|
|
|
Download this file
http://www.codeproject.com/useritems/changerowheight/multiline.zip
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
Nish is a BIG fan of Goran Ivanisevic
|
|
|
|
|
How can I grab contents of any window of application ( from this application ) into a bitmap?
|
|
|
|
|
chk out http://support.microsoft.com/support/kb/articles/Q240/6/53.asp
the article is for VB but you should be able to convert easily to c++
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
Nish is a BIG fan of Goran Ivanisevic
|
|
|
|
|
Who can write simple regular dll (at name RegDNM) by the wizard.
That contain only one function (at name Reg).
That gets integer and returns integer(even the same integer )and that's all.
and would works in another language (as delphi) client program .
Very simple . not?
I tried it in all the ways that I successed to find and it works only in vc. not in delphi !
|
|
|
|
|
|
Nish, that was suggested to the guy about a month back. He didn't have much success with that either.
My Delphi knowledge is about five years out of date and so is my copy otherwise I'd take him up on his challenge. I refuse to believe that it can't be done.
Michael
|
|
|
|
|
Michael P Butler wrote:
Nish, that was suggested to the guy about a month back.
guy???
isnt mimi a girl-name?
I know of mimi rogers [actress]
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
Nish is a BIG fan of Goran Ivanisevic
|
|
|
|
|