|
@largeinsd wrote: what the heck does that mean?
The owner is the program that creates the control, so it's responsible for its appearance rather than Windows.
|
|
|
|
|
I just downloaded a copy of VS2008. Am I alone in not recognising anything anymore. There are apparently No more Dialogs (They're called Forms? now, and are apparently created on the fly) No Resource templates, messagemaps, etc. It is still not clear to me how I trap an event, say clicking on a button. Is all knowledge of classical MFC Skills assigned to the scrapheap? To me the whole enterprise looks like Visual Basic with cpp syntax.
Bram van Kampen
|
|
|
|
|
What edition of VS did you download (the Express one hasn't MFC )?
You have also to use VC++ and choose a Win32 Project to find the old stuff.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
I have Express, so that's useless for my purposes.
btw Is that 'new' stuff realy the future? If I had wanted to write in VB and accept it's limitations, that what's i'd have done by using VB. I Don't see any point in using cpp to write stuff akin to VB. By the way, there are more limitations to Express. It is not geared for DLL's. I tried to write a simple one just as a test, Ultimately (because there were no options to choose) by changing the Output Filename to .dll. The whole thing is in a quandry since, (a process called mt is looking for it at the start of the build, and can't find it (it has not been built yet) and cancels the Process with error message c10100b1. I have sofar not been able to find a deeper meaning or background on this error message on MSDN.
Sofar I've been using Visual Studio 97 and VC++ V5.00. It serves 99% of my needs. On occasion I've had to write some DLL's to cover features not implemented on my version, but I get by.
Thanks for your reply, and a happy new year.
Regards
Bram van Kampen
|
|
|
|
|
Bram van Kampen wrote: I have Express, so that's useless for my purposes.
Well, the Express Edition has a great value for money (in fact infinite ). Seriously, you can usually really go on without MFC, in fact I often prefer to use standard Win32 programming.
Bram van Kampen wrote: btw Is that 'new' stuff realy the future? If I had wanted to write in VB and accept it's limitations, that what's i'd have done by using VB. I Don't see any point in using cpp to write stuff akin to VB
Microsoft is strongly promoting .NET Framework, i.e. managed code. It support neverthless standard C++ (native) programming while Visual Basic 6 is no more supported. Roughly speaking, .NET languages are much more powerful and really better (expecially C# ) than 'good' old VB6.
Bottom line, you can really build great application using .NET .
Bram van Kampen wrote: By the way, there are more limitations to Express. It is not geared for DLL's
The above is false. You can easily build a DLL (as well a Static Library) using VC Expression Edition (I've done it): just choose, as project, a Win32 one and then, in the application settings window, select DLL .
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
I must admit, I'm totally new to this thing. The interface has changed beyond recognition over the last few years.
CPallini wrote: The above is false. You can easily build a DLL (as well a Static Library) using VC Expression Edition (I've done it): just choose, as project, a Win32 one and then, in the application settings window, select DLL.
I've created now about two dozen empty projects in an attempt to get the options you mention. The biggest learning experience of it all was that I'm getting a feel of the Trepidation our staff feels when I announce that their software has been upgraded. (I Never change the Look and Feel though, if it can be helped). I also noticed that All VC++ 5.0 Help (Help for my Working version)was rendered inacessable by installing V9.0.
Bram van Kampen
|
|
|
|
|
Bram van Kampen wrote: I've created now about two dozen empty projects in an attempt to get the options you mention.
Well, maybe in the next two dozen attempts... Good luck!
Bram van Kampen wrote: The biggest learning experience of it all was that I'm getting a feel of the Trepidation our staff feels when I announce that their software has been upgraded.
I know this kind of feedback, it's useful.
Bram van Kampen wrote: (I Never change the Look and Feel though, if it can be helped).
Beacuse you are a kind developer. I usually cannot resist the temptation...
Bram van Kampen wrote: I also noticed that All VC++ 5.0 Help (Help for my Working version)was rendered inacessable by installing V9.0.
This happened to mee too (with two different version of Visual Studio). I
don't know if it is a documented incompatibility, but I agree: it is a weird thing.
Best wishes to enjoy Visual Studio 2008.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
Bram van Kampen wrote: Sofar I've been using Visual Studio 97 and VC++ V5.00.
You really need to be using the full VC++ 2008 then. The Express edition will be limiting.
Kevin
|
|
|
|
|
I went through the same feeling of being locked in VB land when going from VC++ 6.0 to VC++ 2003. I can't imagine how much of a shock it would be to go from VC++ 5.0 all the way to VC++ 2008.
I think it's the one size fits all mentality with the IDE.
The express editions only come with the libraries like .NET, but if you want the power of MFC, you have to buy one of the full products.
|
|
|
|
|
It is a Shock allright, I am maintaining a six year old code base. The Code runs our shops, essentially POS (Point Of Sales) Terminals.
To port this to .NET would involve at least a porting tool, as about 1500 files are involved.
We do not want or need Global Internet Access. VC++5.0 is more than adequate for this. I am now trying to write a form of Internet access, which allows customers to see their bills, and management what's going on!
VC++5.0 should be well able to do this. Maybe we should have a separate sub forum on Legacy MSCompilers, which no doubt people would find usefull.
Not everyone is writing "Push the Boundary" apps. In reality, most queeries on the CPP-MFC messageboard deals with newcommers.
By the way:
if .NET is the way forward according to Microsoft, why is VS2008 littered with JS type files!
Happy New Year
Bram van Kampen
|
|
|
|
|
MFC is alive and well in our shop. We continue new projects in it and use VC++ 2003. Granted, there are quite a few project options but MFC is still in there. Looks different and MFC 4.2 and 7.1 differ a bit in a few places but mostly for the good of MFC. They've fixed a few problems but unfortunately ruined the IDE.
I've gotten used to it though. I still fire up VC++ 6.0 on a regular basis for some test apps but I found the VC++ 2003 compiler to smoke my VC++ 6.0 compiler by a factor or 7 to 1 even with the optimizing compiler disabled. CString is now a template class which is a bit odd but otherwise it feels the same. Some of the C++ conformance has improved allowing for some coding styles that weren't possible with VC++ 6.0.
Some things I hate: the IDE becomes non-responsive and locks up on a regular basis for 2-5 seconds, it's hardly a RAD tool anymore as it is quicker to hand code than use those bastardized "wizards" they give us, not all the tools that came with Visual C++ 6.0 seem to be included, even in the Professional Editions.
Anyway, from what I hear, you don't have to give up on MFC if you use a newer IDE. You just don't get it for free which makes sense in a way since it's really a professional's tool. I plan on going to VC++ 2008 about the start of 2009 so I hope they finish cooking it by then.
Happy New Year
|
|
|
|
|
Hello all,
I was spending some time making a little application that will help me a lot on save time for my future applications.
I'm creating a Property sheet application that initially will have 5 property pages.
I can add and remove some other pages, and of course it is not a big issue if they are not placed in the right order, but imagine that:
UNIT1 | second page | third page | fourth page | fifth page | UNIT2 | UNIT3 | ...
At the beginning I don't know the amount of pages I'll have, and it would be very nice to be able to add the UNIT2 and UNIT3 pages later, but having them after UNIT1:
UNIT1 | second page | third page | fourth page | fifth page | UNIT2 | UNIT3 | ...
Is this hard to do? or even possible?
PS:
I've looked into Google and in the articles regarding to the property sheets, in Google I've found tons of people asking how to change the tab order on a dialog (CTRL+D) and in he articles nothing regarding my question...
PS2:
of course I could set the UNIT1 tab at the end and "end of the story", but the fact is that UNITx should be before as their data affects the other tabs...
As always thank you in advance.
|
|
|
|
|
The PSM_INSERTPAGE Message[^] will insert pages wherever you want.
If you're using CPropertySheet, you may want to implement an
InsertPage() method to a CPropertySheet-derived class. See
CPropertySheet::AddPage() for details.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thank you very much! it seems to be exactly what I needed.
|
|
|
|
|
Hi all, i've played with/search for a solution and gotten frustrated over a problem that i have with a piece of code and i cant seem to get it down for some retarded reason.
The error is this: error LNK2001: unresolved external symbol "int __cdecl brandom(int,int)" (?brandom@@YAHHH@Z)
The code its talking about is
<br />
#include <iostream><br />
#include "header.h"<br />
using namespace std;<br />
<br />
int dport = brandom(1900, 48000);<br />
<br />
int main(){<br />
int dport = brandom(1900, 48000);<br />
cout << dport << endl;<br />
return 0;<br />
}<br />
<br />
#ifndef __RANDOM_H__ // Contents of header.h<br />
#define __RANDOM_H__<br />
void init_random();<br />
int brandom(int client,int top);<br />
int get_random_number(int range);<br />
#endif <br />
</iostream>
I've been to msdn about this stupid problem and yet i cant find out a way to resolve this. Can anyone help? Thanx in advance!
|
|
|
|
|
Could it be that __RANDOM_H__ would have been defined before?
Hope this helps.
|
|
|
|
|
Nope
If it was defined before, the header would have been skipped in the build of the relevant obj, and created a list of undefined symbol errors
Regards,
Bram van Kampen
|
|
|
|
|
?
If what he has written down is correct the only function that he is trying to use from that header file is the brandom one and precisely he is getting an unresolved external...
Here I'm at 3:00 AM so I'm very tired, but it seems clear to me...
EDIT: even if it is so late this is not excuse for not saying hello at the beginning and best regards at the end... sorry...
|
|
|
|
|
The error message is clear:
You have to link with the object (or the library) file containing the brandom function.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
There are plenty of things that could be going wrong here, but my first guess is your missing a reference to a library.
If your function is from a .dll, and you have a .lib file for it, you can avoid path problems by putting them in your project directory along with the header file and include the appropriate pragma. If that eliminates the problem, then you know you had path issues and you can move the .lib file, .dll, and .h file to where you want, each time updating your path settings.
#include "SomeLibrary.h"
#pragma comment(lib, "SomeLibrary.lib")
|
|
|
|
|
Hi,
I would like to get hints as to how to create messages in MFC. I wanted to sense the serial port buffer and then if the bytes received is above a threshold I would like to post a message and handle it with a function. How could it be done. The main issue is creating message or events to be handled.
|
|
|
|
|
That is not a difficult task.
You have to:
1. define your own message, choosen inside the user messages range.
2. Create the message handler with proper signature.
3. add an entry in your class message map.
all of the above steps are well shown in the following documentation page:
http://msdn2.microsoft.com/en-us/library/k35k2bfs(VS.80).aspx[^]
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|
|
In addition to CPallini's reply...
I would recommend using messages ID(s) in the range
WM_APP through 0xBFFF instead of a WM_USER-based ID
as shown in the MS sample code. That way there's much
less of a chance your message will conflict with any messages
used by certain private window classes.
You can also get a system-wide unique message ID with
RegisterWindowMessage().
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
|
IMHO you have to go through GetDeviceCaps [^] (it can return both logical screen dimensions and physical ones) and a small number of elementary math operations.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
[my articles]
|
|
|
|