|
Hi,
I am using serialize to write out my MFC application document data. I want to have names in the file dialog post-fixed with a file extension, like "binky.dfg" (.dfg is the file extension). I understand I need to call CWinApp::RegisterShellFileTypes(...). However, this will only work if I set the appropriate string for the file extension in my CSingleDocTemplate. I browsed around and found CSingleDocTemplate.GetDocString(...). This will let me read what the file extension is for my document. But how do I set a file extension? There is no SetDocString(...).
It looks like the CSingleDocTemplate members I am interested in are some/all of regFileTypeId, regFileTypeName, filterExt, or filterName. I'm not sure which one I should be working with. Also, these are member variables of the class. Shouldn't I be not touching these directly? Rather, shouldn't I be using some class member functions to do the work?
Help?
Max
|
|
|
|
|
If you are using CFileDialog then look at the second parameter lpszDefExt of the constructor
CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL );
Regards,
Paresh.
|
|
|
|
|
Hello All,
I am pretty new to MFC and Visual C++. I would want a little help on MFC serialization. If possible could some one please give a small piece of code as to serialize an object to a file and then deserialize it?
thanks in advance.
Keshav Kamat
India
|
|
|
|
|
|
thanks. this was the exact thing i was looking for. I wanted the concept of the CFILE.
Keshav Kamat
India
|
|
|
|
|
If you are using the Doc/View architecture, you can do some simple document writing:
void CYourDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring()) {
ar << an_int
<< a_double
<< a_CString
<< a_short;
} else {
ar >> an_int
>> a_double
>> a_CString
>> a_short;
}
Make sure the order and size of the data you write is identical to the order and size of the data you read, otherwise kaboom. If you want to serialize your own classes, you need to inherit them from CObject. It is also a bit more complicated. Websearch for DECLARE_SERIAL, IMPLEMENT_SERIAL. These are macros that you will need to add to your class. Finally, when you actually write the code to do the serialization of your class objects, you will need to over-ride Serialize(...), which your class will inherit from CObject. In your Serialize(...) over-ride, you will implement the necessary code to write your class object to a file. It will be pretty much the same as the sample code above. So, e.g., your class has an int size; member variable, you will do ar << size; in your Serialize(...) over-ride.
Max
Max
|
|
|
|
|
Thanks. really appreciate it.
I know how to work with all the components individually.
the problem is putting all together in vc++ 6.0 as an application.
thanks anyways.
I got a pretty decent idea now.
Keshav Kamat
India
|
|
|
|
|
Dear Friends,
I am using MSHFlexGrid control. And i want to merge two cells. Can anybody please help me to do that?
On MSDN I got one example but i m not able to use the same .
Help Need urgently.
Megha
|
|
|
|
|
Hey Guys,
Is it possible to display two fonts or more in the same CEdit control?
I need to display a price in a special format, something like this: 12.2536
Thanks in advance
|
|
|
|
|
No. There's no formatting information in the text of a standard edit control.
You can do it with a RichEdit control though.
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
|
you have to declare extern such variables in the header file
and define them in the proper cpp file, for instance:
extern int iGlobal;
in the header file and:
int iGlobal;
in one and only one cpp file.
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.
|
|
|
|
|
Thanks ....
CPallini wrote: you have to declare extern such variables in the header file.
This is going to sound stupid, but I have not yet done something like that, if you could be so kind, could you please give me an example ???
Many Thanks
Regards,
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
My Blog: ^_^
|
|
|
|
|
|
|
Thank you for the help CPallini, the explanation that you gave will also work for more than one header file and cpp file (Class - Base Classes [files]) ???
Regards,
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
My Blog: ^_^
|
|
|
|
|
Use
/force switch in linker option.
Come online at:-
jubinc@skype
|
|
|
|
|
Thanks for the reply, what would /force do ??
Regards,
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
My Blog: ^_^
|
|
|
|
|
/force sounds unwise, you should fix the problem by using extern in the headers and only defining the variables once. To see what /force does check the documentation.
I know that programming style and naming conventions are controversial, but global variables called i, n ??? How about something more descriptive?
Peter
"Until the invention of the computer, the machine gun was the device that enabled humans to make the most mistakes in the smallest amount of time."
|
|
|
|
|
cp9876 wrote: I know that programming style and naming conventions are controversial, but global variables called i, n ??? How about something more descriptive?
lol, I totally agree, but when pasting an example on the CP, I don't like using the full variable name
Regards,
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
My Blog: ^_^
|
|
|
|
|
Hi,
I am new to vc++.net (mfc),i need to know how to add data and column headers to the MSDATAGRID VERSION 6.0 dynamically IN vc++.Net(mfc application), Please Some one help me
Thanks in advance
Engilela
-- modified at 6:26 Friday 13th April, 2007
|
|
|
|
|
Hi all,
Take the following into consederation:
header file
class ftp :
public ftpHook
{
public:
int ftp_FileExists(LPSTR Filename);
LPSTR ftp_StrChr(LPSTR StringPtr, char Ch);
};
cpp file
#include "ftp.h"
int ftp::ftp_FileExists(LPSTR Filename)
{
Ptr = ftp_StrChr(PathBuffer+lstrlen((LPSTR)LocalDir)+1,':');
}
</code>
But I keep receiving the following error:
Error 1 error LNK2019: unresolved external symbol "public: char * __thiscall ftp::ftp_StrChr(char *,char)" (?ftp_StrChr@ftp@@QAEPADPADD@Z) referenced in function "public: int __thiscall ftp::ftp_FileExists(char *)" (?ftp_FileExists@ftp@@QAEHPAD@Z) ftp.obj
Can anyone please help me.
Many Thanks.
Regards,
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
My Blog: ^_^
|
|
|
|
|
|
Look, you make a call to ftp::ftp_StrChr [inside ftp::ftp_FileExists] but this function is not defined [it has no body]. So define that function.
--
======
Arman
|
|
|
|
|