|
John Simmons / outlaw programmer wrote: Before we switched to VS2005/SP1, there were *no* asserts.
Ouch - yeah....I just dug up old source code. There's just alot of "if (GetStatus() == valid)"
checks without the ASSERTs
Enjoy!
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
Recently we upgraded from VS6.0 to VS2005. If you do a sizeof of a structure it looks like it pads to 8 byte. Structures that were returning 16 are now 24. Is this right or am I crazy?
Programmer
Glenn Earl Graham
Austin, TX
|
|
|
|
|
1) One (or more) of the members in the struct may be of an intrinsic type that changed size in newer runtime library.
2) Your byte alignment may need to be adjusted in the project's properties.
3) The sizeof function could have been changed by MS, but I doubt it.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
You should use WM_NEXTDLGCTL in a dialog instead of SetFocus().
::SendMessage(hDlg, WM_NEXTDLGCTL, (WPARAM)hwndControl, 1);
(CDialog::GotoDlgCtrl(CWnd* pWndCtrl) is the MFC wrapper)
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
Mark Salsbery wrote: You should use WM_NEXTDLGCTL in a dialog instead of SetFocus().
But this still does not explain the "Selecting the edit box by clicking on it and then writing does not work." problem. Something is definitely awry here.
"A good athlete is the result of a good and worthy opponent." - David Crow
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
DavidCrow wrote: Something is definitely awry here
Yep
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
I agree.
Time to come clean...
Vive y deja vivir / Live and let live
Javier.
|
|
|
|
|
garfield185 wrote: Time to come clean...
Yes! Are you withholding important information from us??
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
Oh no!
"Time to come clean" is just my signature.
Well, I love Desperate Housewives...
Time to come clean...
Vive y deja vivir / Live and let live
Javier.
|
|
|
|
|
Oh ok
I just noticed a few posts down - do you have a PreTranslateMessage override in the dialog
in question? If so, are you accidentally eating important messages there?
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
I use the PreTranslateMessage to check if the user presses Enter to prevent the Dialog from closing. The only thing written about that is this:
BOOL CSeLlamDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->wParam == VK_RETURN)
{
pMsg->wParam =NULL;
if (Selected==TRUE)
{
OnBtnadd();
}
}
return CDialog::PreTranslateMessage(pMsg);
}
Well, it should not make nothing right about it right?
Time to come clean...
Vive y deja vivir / Live and let live
Javier.
|
|
|
|
|
I have a few suggestions:
- Throw the PreTranslateMessage thing in the trash can. Read this[^].
- Avoid having your dialog closed on <Enter> and <Esc> by writing appropriate message handlers. Read this[^].
- Create a CEdit member variable in your dialog class and call
CEdit::SetFocus() on that from CDialog::OnInitDialog() . Read this[^]. - If you explicitly set focus to a control you should return
FALSE from OnInitDialog() . The wizard generated comment also clearly states this.
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
Heh - wow, the first and last time I recommended using appropriate message handling instead of
the over-badly-used PreTranslateMessage() I was ridiculed, tarred, and feathered.
Bold move
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
Hi Mark,
Mark Salsbery wrote: Heh - wow, the first and last time I recommended using appropriate message handling instead of the over-badly-used PreTranslateMessage() I was ridiculed, tarred, and feathered.
Did I mistakingly reply to you?
It's hard to see when the forum threads grow this large.
I see the picture you're drawing, but not the reason... I don't think you deserve neither tar nor feathers.
Mark Salsbery wrote: Bold move
Like my former sig: Nobody remembers a coward!
When my lawyer heard that he replied that "Nobody forgets an idiot either!"
"It's supposed to be hard, otherwise anybody could do it!" - selfquote "High speed never compensates for wrong direction!" - unknown
|
|
|
|
|
Hi Roger,
No you didn't reply to me - I was just commenting (ranting?) about the over-misuse of
PreTranslateMessage(). I just remember one of the first qestions I ever responded to here was
about avoiding dialog closing when enter key pressed. My suggestion to handle the appropriate
messages (like in Joe's article), I was informed, was bad. Apparently PreTranslateMessage()
overriding is quite fashionable on this site!
Cheers!
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
Probably not related to the problem, but I think it should be something like this (changes
indicated in red)...
BOOL CSeLlamDlg::PreTranslateMessage(MSG* pMsg)
{
if(<code>pMsg->message == WM_KEYDOWN && </code>pMsg->wParam == VK_RETURN)
{
<code>
if (Selected==TRUE)
{
OnBtnadd();
}
<code>
<code>return TRUE;</code>
}
return CDialog::PreTranslateMessage(pMsg);
}
I wasn't sure if you want to eat the return key press or not - remove the "return TRUE;" line
to have the key press processed as usual.
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
I think that the line
pMsg->wParam =NULL;
should be needed because when the user presses enter If I don´t do it I close that dialog and then the the VK_RETURN still lives in the other dialog, so it makes again. I wrote it to call once the function and to be sure that the message would be dead in the oher dialog.
Anyway it works well.
Time to come clean...
Vive y deja vivir / Live and let live
Javier
|
|
|
|
|
garfield185 wrote: should be needed because when the user presses enter If I don´t do it I close that dialog
That's why I added the "return TRUE;", to eat the return key press.
Whatever works, I guess, but I think it's bad form to alter the message and pass it to the default
handler when there's a facility for indicating the message has been handled
But then again, using PreTranslateMessage for this IMO is bad form (see Roger's reply).
Cheers!
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
Hey,
I have two arrays of values that I need to be able to make a simple line graph. I was woundering if you would be able to point me the write direction in what to do.
Thank you
Simon
|
|
|
|
|
If you are looking for a chart control, take a look at my sig and see if it fits with what you are looking for.
|
|
|
|
|
That looks similar to what I need to do, but I was hoping to just use features in Visual studio 2005, if they exist.
Thanks
|
|
|
|
|
Its easy - for some definitions of 'easy'.
You need a CDC, get the size of it, and transform your X/Y-coordinates to values in the CDC.
You can now use MoveTo / LineTo to draw your graph.
You might need an axis near your drawing, which complicates matter further.
Definitly more than a days work to do from scatch.
Failure is not an option - it's built right in.
|
|
|
|
|
Do you think you would be able to point me to a site with information about CDC please?
Thanks
|
|
|
|
|
Device Contexts[^]
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
They exist but if you want something nice looking, it is more complicated than you think. If you just need two axis without any mark and ticks (so just two lines) then you'll need to convert your points that you want to draw into screen position and draw the lines or points.
Furthermore you need to encaspulate all of that in a control (which add also a little bit of complexity if you never did that).
If you want something nicer (e.g. with mark on the axis and titles) then it become already 'complex': you'll need to calculate the margin to write the text, you need to calculate how many labels your gona display on the axis, ...
Of course all of this can be done (I did it, so it is far from being impossible ) but it depends of how many time you want to spend on it.
But why do you want to write that from scratch when free solutions exist ?
|
|
|
|