|
DavidCrow wrote: Have you bothered to read the documentation? The fifth argument is the ID.
. Please excuse. That's dumb. Thanks for the reply.
|
|
|
|
|
Will that be enough, or is another shoe to drop?
|
|
|
|
|
I'm missing the punch line, Mike.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
Not really one. I was predicting this[^] it hadn't shown up before I posted mine.
Looking at the times it no longer reflects the predictive nature of my post.
|
|
|
|
|
You need to define a hard-coded range of IDs for your dynamically created controls.
for example, you can decide that the range
#define IDC_DYNAMIC_CONTROL_RANGE_START 1300
#define IDC_DYNAMIC_CONTROL_RANGE_START 2000
And when you create a new control, you assign the first free ID in the range; that means you will have
a limit on how many controls you will be able to support.
This signature was proudly tested on animals.
|
|
|
|
|
Here is my code:
void CtimerDlg::OnTimer(UINT_PTR nIDEvent)
{
CString prazno;
prazno="";
progres.SetPos(100);
int j= (rand()%2)+1;
if(j==1)
{
m_sEdit=getRandomSymbol1();
AppendTextToEditCtrl(m_edit, m_sEdit);
skritEdit.GetWindowText(strGet);
strGet.MakeUpper();
}
else
{
m_number=getRandomSymbol2();
char c[10];
_itoa(m_number,c,10);
MFCString=c;
AppendTextToEditCtrl(m_edit, MFCString);
skritEdit.GetWindowText(strGetN);
}
if(m_sEdit==strGet) stevec1=stevec1+1;
else stevec2=stevec2+2;
if(MFCString==strGetN) stevec1=stevec1+1;
else stevec2=stevec2+2;
m_sEdit="";
strGet="";
m_number=0;
MFCString="";
strGetN="";
skritEdit.SetWindowTextW(prazno);
UpdateData(FALSE);
progres.SetPos(0);
CDialog::OnTimer(nIDEvent);
}
NOTE* skritEdit is CEdit with focuson and hidden where user is typing chars and numbers from keyboard. m_edit is also CEdit but visible where random chars and number are shown.
NOTE2* GetRandomSymbol1 returns char, GetRandomSymbol2 returns int.
And here are buttons that starttime and killtime..
void CtimerDlg::OnBnClickedButton2()
{
CString prazno2;
prazno2="";
this->KillTimer(1);
char e[10];
itoa(stevec1,e,10);
CString proba;
proba=e;
m_edit.SetWindowTextW(prazno2);
MessageBox(proba);
stevec1=0;
}
void CtimerDlg::OnBnClickedButton3()
{
this->SetTimer(1,x,0);
skritEdit.SetFocus();
slider.EnableWindow(FALSE);
}
Can you tell me why stevec1 and stevec2 aren't counting correctly.. in function ontimer there is MFCString always empty..like conversion with itoa wouldn't work..
|
|
|
|
|
Aljaz111 wrote: this->SetTimer(1,x,0);
What is the value of x ? In practice, it has a minimum value of about 15 .
Aljaz111 wrote: Can you tell me why stevec1 and stevec2 aren't counting correctly.. in function ontimer there is MFCString always empty..like conversion with itoa wouldn't work..
Have you used the debugger to step through the code to see what is going on? Much, much easier than looking at a big wad of code and wondering what could be wrong.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
value of x comes from onsliderrelease...i have slider.setrange(0,1000).. x=slider.getpos(); in function on slider released..
I used debugger..when it comes to MFCString it is always empty.. more..this button which kills ontimer shows wrong stevec1 or stevec2.. With debuger i saw that sometimes stevec1 goes +1 when numbers are randomly shown..with or without comparison for numbers--> if(MFCString==..).. When i used debuger only for chars..stevec1 is counting correctly but onbutton for killing time..stevec is wrong..as i said before..if numbers are shown sometimes stevec1 just goes +1 ...
|
|
|
|
|
hello all,
LPTSTR lptSub = ( LPTSTR ) malloc ( sizeof(LPTSTR)* 25 );
LPTSTR lptMessage = (LPTSTR) malloc ( sizeof(LPTSTR) * 256 );
_tcscat( lptMessage, lptSub );
is it fine....??
|
|
|
|
|
You probably mean sizeof(TCHAR) , since it's the size of a character you want, and not the size of the pointers.
|
|
|
|
|
Ok...
LPTSTR lptSub = ( LPTSTR ) malloc ( sizeof(TCHAR)* 25 );
LPTSTR lptMessage = (LPTSTR) malloc ( sizeof(TCHAR) * 256 );
_tcscat( lptMessage, lptSub );
now??? it is ok???
|
|
|
|
|
zakkas2483 wrote: now??? it is ok???
No. You have not verified that either is null terminated.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
Nope - with the code you've shown there is no guarantee that either lptSub or lptMessage have a zero character that will a) tell _tcscat where to start copying lptSub into, and b) tell _tcscat when to stop copying lptSub into lptMessage.
And there's also the fact that you want sizeof(TCHAR) rather than sizeof(LPTSTR), as previously pointed out.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks but ...
I am having strange problem.
PTSTR lptSub = NULL;
lptSub = new TCHAR[25];
if( lptSub == NULL )
return;
LPTSTR lptMessage =NULL;
lptMessage= new TCHAR[256];
if( !lptMessage )
return;
somefun(lptSub);
MessageBox(NULL,lptSub,L"ABC",1);
///Above line display result perfectly
// Do something with the strings
_tcscat( lptMessage, L"TEMP::" );
_tcscat( lptMessage, lptSub );
MessageBox(NULL,lptMessage,L"ABC",1);
///Above line display only TEMP::
now i think by using new it is allocated with zero initially. but still the value of lptSub display in first Messagebox but not display in second messagebox.
Thank You.
|
|
|
|
|
zakkas2483 wrote: PTSTR lptSub = NULL;
lptSub = new TCHAR[25];
It doesn't matter much.
You should use ZeroMemory to keep the buffer empty. Try something like :
ZeroMemory(lptSub,BUF_SIZE);
ZeroMemory(lptMessage,BUF_SIZE2);
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
That's one of the most ridiculous things I've ever heard. What is the purpose of wasting CPU cycles like this? If you are worried nothing will be copied into the buffers and they will be used as strings (which is sometimes the case by design), just set the first character to zero.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
Joe Woodbury wrote: That's one of the most ridiculous things I've ever heard.
You've been around CP long enough to know that far more ridiculous posts have been made. There's a big difference between a wrong/bad post and one that just lacks efficiency.
Joe Woodbury wrote: What is the purpose of wasting CPU cycles like this?
For one-time initializations, the wasted CPU cycles, if any, would be negligible.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
I think it's very bad advice. It's not just wasting cycles, it's creating code for no reason. Code that solves nothing is bad code.
(Also please note the qualifier "one of the most"--and the reason was saying "you should" do this.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
Joe Woodbury wrote: That's one of the most ridiculous things I've ever heard
I'm finding it funny you put this much effort to point out a trivial mistake. Whenever I define a structure, I zero them up with their size, I typed with the same intent without thinking much. You are finding that the "most ridiculous" ?? Funny. This is a trivia! but of course you've got the right to beat your chest and feel proud of point that mission-cracking bug.
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
It's not only a waste of CPU cycles, it accomplishes nothing. To suggest that someone "should" do this is what's so ridiculous.
VuNic wrote: You are finding that the "most ridiculous"
one of the most.
And again, the problem was that you didn't phrase this as "this is a pointless habit of mine", but as something he "should" do.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
Joe Woodbury wrote: It's not only a waste of CPU cycles, it accomplishes nothing. To suggest that someone "should" do this is what's so ridiculous.
I explained the reason in my last reply. I just mistook it for yet another structure. Your hatred just eclipses your valid point. Trivial though
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
VuNic wrote: your hatred just eclipses your valid point.
Good heavens.
Methinks you need to get a dictionary.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
ZeroMemory(JoeWoodbury,sizeof(JoeWoodbury));
Get Zeroed out!
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
Perhaps you meant delete JoeWoodbury; since zeroing me out means there's still a shell of me around.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
If there's a delete , there would always be a new round the corner. No risk taken. Let's just "neutralize" the enemy. Zero-out and get frozen.
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|