|
Thanks!
--
Nice greets, Daniel.
|
|
|
|
|
Putting a recent file list into my MFC-based app was a no-brainer, but there's something I'm having trouble with.
If I select a file from the Recent list that's currently open, MFC magically avoids calling OnOpenDocument() in my doc class. While this is desirable behavior in most cases, for my particular app I need to reopen the file instead.
Any ideas on how to tweak the behavior?
|
|
|
|
|
Override the CWinApp::OpenDocumentFile ?
Steve S
[This signature space available for rent]
|
|
|
|
|
Sounds good, except I can't figure out how to access the doc class from scope of the app. Is there a good way to do this?
|
|
|
|
|
Generally in situations like this, I use the "Star Wars" approach.
Use the source, Luke.;)
Without looking, I'd guess that the CWinApp version trawls through the registered document templates, and asks each of them to do it. So what you'd probably want to do is create an overridden version in a CxxxxDocTemplate derived class, that instead of activating the window, closes then reloads the document. Of course, you don't want to do that if it's an SDI app.
Steve S
[This signature space available for rent]
|
|
|
|
|
Duh, it never occurred to me to look into overriding the doc template. Maybe that's a sign I should go to sleep.
Looks like I could override CDocTemplate::MatchDocType to lie in its return value about a document being open, but that sounds kind of dangerous.
Unfortunately for me, the actual decision whether or not to open a file lies in a CDocManager class, which sits out reach in the MFC dll. Sounds like I might have to look into another solution after all. Maybe maintain the Recent list myself?
|
|
|
|
|
I think it's also possible to replace the CDocManager with a derived one too!
Steve S
[This signature space available for rent]
|
|
|
|
|
Here goes, I created an MFC dll, I then added a dialog added a class to it, then tried to compile it. I get the following two errors:
--------------------Configuration: ALSTG - Win32 Debug--------------------
Compiling...
ALSTGPlug.cpp
c:\documents and settings\darroll\my documents\myprojects\told\alstg\alstgplug.h(21) : error C2065: 'IDD_FOUS21' : undeclared identifier
c:\documents and settings\darroll\my documents\myprojects\told\alstg\alstgplug.h(21) : error C2057: expected constant expression
Error executing cl.exe.
ALSTG.dll - 2 error(s), 0 warning(s)
What am I missing? Thanks in advance.
Darroll
Not one person lives in the present. Only the past. I can prove it.
|
|
|
|
|
is "IDD_FOUS32" defined in resource.h? Is resource.h included in the the alstgplug.h file (and/or the ALSTGPlug.cpp file [but only if this include is "above" the alstgplug.h file] )
Hope that helps....
Just trying to keep the forces of entropy at bay
|
|
|
|
|
Bingo, just needed to include the resource.h file.
Thank you!
Not one person lives in the present. Only the past. I can prove it.
|
|
|
|
|
I want to view / edit the properties of a file programmatically. By properties, I mean the properties you see under right click / properties / summary tab (title, author, summary, etc). I've been searching MSDN but no luck so far.
Any suggestions ?
|
|
|
|
|
GetFileAttributes / SetFileAttributes
GetFileSize
GetFileType
GetFileInformationByHandle (could be the best one to research?)
Just trying to keep the forces of entropy at bay
|
|
|
|
|
Thanks, not really what I'm looking for.
It's amazing that I've been searching for hours now and couldn't find any info on this. I was hoping for a simple API function.
|
|
|
|
|
That stuff only normally appears if it's a compound file (OLE "document"). I think there's a sample on MSDN that deals with examining these. Try looking for properties and "structured storage" or some such.
Steve S
[This signature space available for rent]
|
|
|
|
|
I don't think its as simple as you think, i've been meaning to go through this for a while and do somthing similar (get the Map NetworkDrive dialog), heres what i have found so far, you need to get a IContextMenu handle and then fill a CMININVOKECOMMANDINFO structure like bellow. You need to fill in the correct verb, in the code (snipped from seashell project - see shell extentions section in CP.) bellow it sets the verb by T2CA(MAKEINTRESOURCE(iCmd - IDM_SHELLCTXFIRST)); SHELLCTXFIRST = 2000, the iCmd is the cmd id returned by the context menu command. I'm presuming that the value of iCmd will not change per platform.
If you can find the value of iCmd that is the verb "properties" then i think you could bring up that dialog.
To Get IContextMenu you call IShellFolder::GetUIObjectOf.. see msdn.
00336 CMINVOKECOMMANDINFO cmi;
00337 cmi.cbSize = sizeof(cmi);
00338 cmi.fMask = 0;
00339 cmi.hwnd = m_hWnd;
00340 cmi.lpVerb = T2CA(MAKEINTRESOURCE(iCmd - IDM_SHELLCTXFIRST));
00341 cmi.lpParameters = NULL;
00342 cmi.lpDirectory = NULL;
00343 cmi.nShow = SW_SHOWNORMAL;
00344 cmi.dwHotKey = 0;
00345 cmi.hIcon = NULL;
00346 m_lpcm->InvokeCommand(&cmi);
Asim Hussain
e: asim@jawache.net
w: www.jawache.net
|
|
|
|
|
|
Which API ? The Windows C/C++ API docs are at msdn.microst.com. although docs on API style message loop programming is thin on the ground, and in C especially so.
Christian
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
Sorry, it is C Library Manual, just like Java API docs.
|
|
|
|
|
|
Do you mean C, or C++ ?
Christian
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
What does an unresolved external symbol mean. Respond ASAP. Program due in less than 3 hours. HELP
|
|
|
|
|
Mr. Gates wrote:
What does an unresolved external symbol mean.
It means your compiler was able to see a header, but could not see the .lib for the implimentation of the method or object.
Mr. Gates wrote:
Respond ASAP.
Yes, sir. Seriously, do you think it will help to order us around ? 3 HOURS ? What the hell is wrong with you ?
Mr. Gates wrote:
Program due in less than 3 hours.
Maybe you should have spent more time studying and less time getting drunk then. Sheesh.
Mr. Gates wrote:
HELP
If the answer does not help, explain how you're getting the error, and what it says, so we can help further. Just reconsider that there are people on both ends of this connection before barking orders next time.
Christian
Hey, at least Logo had, at it's inception, a mechanical turtle. VB has always lacked even that... - Shog9 04-09-2002
During last 10 years, with invention of VB and similar programming environments, every ill-educated moron became able to develop software. - Alex E. - 12-Sept-2002
|
|
|
|
|
verify you have the lib path set up right (but only especially if you are using 3party libs)....Or make sure you have spec'ed a lib in the link tab if you are bringing in 'something special'......or use the pragma comment lib if you dont want to relink entire project
Just trying to keep the forces of entropy at bay
|
|
|
|
|
Hi,
I am working on a hydrology project, about stations, wireless communication and central control system.
Look here,
<br />
enum HydroElement<br />
{ <br />
waterlevel,<br />
rainfall,<br />
mudSand<br />
}
there is a station type---waterlevel and rainfall, can i simply use
waterlevel|rainfall
to present this station type?
Thanks alot.
Extreme programming. Do the No.1
|
|
|
|
|
Maybe:
enum HydroElement
{
waterlevel = 0x1,
rainfall = 0x2,
mudSand = 0x4
}
then you may use the or operator.
Michel
It is a lovely language, but it takes a very long time to say anything in it, because we do not say anything in it, unless it is worth taking a very long time to say, and to listen to.
- TreeBeard
|
|
|
|