|
Gary R. Wheeler wrote: DDV routines only validate on save operations. The first argument to the DDV routines is a pointer to an object of type CDataExchange, which includes the member m_bSaveAndValidate. All of Microsoft's DDV routines check this value prior to issuing an error. This value is TRUE only if you call UpdateData(TRUE), which means you are doing a save operation.
Of course, this is how DDX/DDV works and if you've got the impression that I don't know how DDX/DDV works; I apologize for not being very clear on that. I know very well how it works, I've even stepped through the call chain when I started doing dialogs with MFC about a decade ago.
My point was that, in my opinion, the data should not be saved until the user has confirmed it by clicking the "OK"/"Apply" buttons or similar. The other direction, i.e. copying the data to the controls, is irrelevant since nothing will be validated using DDV.
I'm talking about when to to perform a save operation, not how.
Regarding the "fill-in-the-blanks" form, I agree that DDX/DDV has it's legimite usage.
My initial intention with my post to Makakuin, was to give some perspective to the usage of UpdateData , not to start a religious dispute on whether DDX/DDV is good or evil.
My post was meant to be informative. The OP didn't provide enough information to advise whether DDX/DDV should be used or not, no matter what opinion I might have on the concept.
"It's supposed to be hard, otherwise anybody could do it!" - selfquote
|
|
|
|
|
don't call UpdateData(false) at regular interval...it update whole screen when called.. better use individual control
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and you
|
|
|
|
|
The MFC SDI program has a document/view architecture and a dialog based flat file database.
At times,
1. the rich text in the view must be "read only" (preferably the user is unable to obtain focus in the view)
2. while the user makes changes to the database
3. and saves the changes to the document as a whole (which of course does not contain any changes to the rich text the user can read but not edit in the view).
At other times, all parts of the document view and database are availble for edit and save.
QUESTION: How does one prevent changes to the view while allowing full "read only" access (including scrolling) of the rich text in the view (preferably from OnInitialUpdate), and still allow editing and normal file save (savemodified and dosave) for the (changed) dialog-based database?
NOTE: Using PretranslateMessage in the Doc file traps keyboard input for a partial resolution, however, it also disables the scroll bar so only one page of the view may be displayed.
SUGGESTIONS?
Thanks.
"For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash
|
|
|
|
|
Have you tried EM_SETOPTIONS with ECO_READONLY flag (CRichEditCtrl::SetReadOnly(BOOL)) ?
I can't remember if that still lets the user scroll...
|
|
|
|
|
Thank you!
EM_SETOPTIONS with the ECO_READONLY flag set rings the bel when the user attempts to edit the view, and does allow scrolling.
Thanks again!
It appears you are the person who helped me before.
Your assistance is very much appreciated!
"For a successful technology, reality must take precedence over public relations, for nature cannot be fooled." Richard Feynman, Minority Report to the Official Report on the Space Shuttle Challenger Crash
|
|
|
|
|
Hello all,
I'm trying to port an old application to visual C++ 2005.
I'm thinking on buying it since the express version seems great.
What I've found strange is that in that old application I had several RegisterWindowMessage() calls in the header file of the app class.
I'm registering the messages in the header file of the CMainApp class: (CMainApp.h)
static const UINT wm_regmsgModeChange = RegisterWindowMessage(WREG_MODE_CHANGE);
As an example, in one of the dialogs (CTestDlg.cpp) I use:
BEGIN_MESSAGE_MAP(CTestDlg, CDialog)<br />
ON_REGISTERED_MESSAGE(wm_regmsgModeChange, OnModeChange)<br />
END_MESSAGE_MAP()
I'm getting this error:
error C2440: 'static_cast' : cannot convert from 'void (__thiscall CTestDlg::* )(WPARAM,LPARAM)' to 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'<br />
None of the functions with this name in scope match the target type
I've searched the MSDN, but I've no idea on what is happening here...
I've seen that the examples from Microsoft are like mine, except the fact that they register the message on the same dialog that it will be used.
I need to use the registered messages in more than one dialog. Which would be the correct steps?
As always, thank you in advance.
|
|
|
|
|
The compiler error is telling you everything you need to know. The message handler needs to be a function that returns LRESULT , but your handler returns void .
|
|
|
|
|
To expand on Michael's post a bit:
Some time ago (MFC 7.0, I believe), Microsoft tightened up the type definitions for user-defined message handlers. In MFC 4.2 (VC6), a message handler could have the following prototype:
void OnMyMessage(WPARAM wParam,LPARAM lParam); In MFC 7.0, they changed the required type to be the following:
LRESULT OnMyMessage(WPARAM wParam,LPARAM lParam); The only real change is the addition of a return type. Note that this was never a functional change. User-defined handlers were always supposed to return an LRESULT , but most didn't.
Modify the return types of your handlers, add a return (LRESULT)0; to the end, and you're all set.
Software Zen: delete this;
|
|
|
|
|
Does anybody know of any good books for VC++ 6.0 that covers more advanced topics? Something that's more advanced that the beginners books like "learn VC++ in a week" type of books.
Some topics that I'm interested in are stuff like multimedia software, database software, communication with online servers, coding USB hardware and the drivers for it, etc...
Thanks
|
|
|
|
|
Have you thought of moving to VC8 ? I doubt there's any VC6 books still in print.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
what are the major benefits of moving to VC8?
I'm asking about VC6 because that's what I use at work, and so far, VC6 has been adequate for what I'm doing. I will have to have a good reason for my boss to fork out the extra money for VC8.
|
|
|
|
|
acerunner316 wrote: what are the major benefits of moving to VC8?
For most folks, it's either the standards-compliance, or the new bells and whistles. It's been nearly 13 years since VC++ v6 was introduced so a fresh tool is (most of the time) welcome.
acerunner316 wrote: I'm asking about VC6 because that's what I use at work, and so far, VC6 has been adequate for what I'm doing.
Same here. I also have the added constraint that my product is a plug-in to a much larger commercial application.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
VC8 is standards compliant, VC6 is not. That's really the main reason I like it. VC8 does also build prettier UI.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
Is it because there is a NEW standard, or VC6 never met any standards to begin with?
Also, I noticed that VC8 dropped the .net title. So VC8 doesn't have the .net framework? I've never actually done anything in .net because I've never used anything after VC6.
Now back onto topic, if I were to switch to VC8 are there any book out there yet that covers topics more advanced than placing and using controls?
|
|
|
|
|
acerunner316 wrote: So VC8 doesn't have the .net framework?
Not at all. .NET within Visual Studio 2005 is ubiquitous. In point of fact, C++/MFC development is distinctly a second-class citizen in the VS2005 world, if most comments about it are an indication.
Software Zen: delete this;
|
|
|
|
|
acerunner316 wrote: Is it because there is a NEW standard, or VC6 never met any standards to begin with?
The latter.
acerunner316 wrote: So VC8 doesn't have the .net framework?
It has .NET, but C++ is the only place you don't HAVE to use it.
acerunner316 wrote: if I were to switch to VC8 are there any book out there yet that covers topics more advanced than placing and using controls?
There have always been books on more advanced topics, such as DirectX, data access, etc. Have you looked at Amazon ?
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
Do you think, that's necessary?? I'm using VC6 too and I hoped that I have no problems using it the next years!!!
What are the advanteges of VC8? What will it cost?? And will my program still work, when I change???
Strange - I hoped to leave the problems with Boreland when I changed to VC6
|
|
|
|
|
ensger wrote: What are the advanteges of VC8?
Standards conformance, for one
ensger wrote: And will my program still work, when I change???
If it's not well written, you will need to make some changes. Either way, you will get warnings for unsafe string handling, but you can turn those off if you want.
Christian Graus - Microsoft MVP - C++
Metal Musings - Rex and my new metal blog
|
|
|
|
|
Richter wrote a good book detailing OS stuff.
Petzold wrote a good book detailing UI stuff.
- You may already know everything in that one, though.
|
|
|
|
|
Can you give me the title of the book? Or the full name of the author?
Thanks.
|
|
|
|
|
Jeffery Richter - Advanced Windows.
Charles Petzold - Programming Windows.
Old, but good.
|
|
|
|
|
Hi Ace,
Richter is one of my Favorites. I am constantly in his Programming Server Side Applications (ISBN 0-7356-0753-2). I also frequently use his other book (Programming Applications for Windows) also.
Also, John Robbins' Debugging Applications, ISBN0-7356-0886-5.
Jeff
|
|
|
|
|
acerunner316 wrote: Does anybody know of any good books for VC++ 6.0 that covers more advanced topics? Something that's more advanced that the beginners books like "learn VC++ in a week" type of books.
Developer guide to Visual C++ 6.0
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and you
|
|
|
|
|
anybody have a bookmark for a c++ complier source code like gnu c++ or a link to find it....?
thanks in advance
-- modified at 15:55 Monday 5th February, 2007
|
|
|
|
|
?
-- modified at 17:13 Monday 5th February, 2007
Heh, and here I thought giving a search term would be helpful, after all a google search of "gcc source" reveals the source of gcc as the very first result and I get voted a 1. I suppose in the future I should keep my mouth shut or just more explicitly encourage people to STFW.
File Not Found
|
|
|
|