|
Hi all,
Can anybody please tell me why CWinApp class have only one object?
Thanks in advance
|
|
|
|
|
Because MFC was designed that way. The one object wraps all the app instance
info that Windows apps have only one of, like the HINSTANCE, and the commandline
params passed. It also holds any other application-wide stuff of which there can only be one.
That makes it a nice place to hide app-wide variables that in the old days would be global.
Plus it makes no sense to have more than one app object in a single app.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
neha.agarwal27 wrote: Can anybody please tell me why CWinApp class have only one object?
because it the base class for the application class. It is needless to have more than one application class for one application. The implementation has dependency on the global object obtained from AfxGetApp(), which is used by the AfxWinMain from winMain. Then it is similar to ask why only one main function for an application.
"The main application class in MFC encapsulates the initialization, running, and termination of an application for the Windows operating system. An application built on the framework must have one and only one object of a class derived from CWinApp." from msdn.
|
|
|
|
|
neha.agarwal27 wrote: Can anybody please tell me why CWinApp class have only one object?
Adding to the above replies, think of it logically. You may have many dialogs, documents, menus, etc., But how many applications are you writing code for? 1? So, the one and only CWinApp derivative would represent your application and you have only one of it.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
It's the unum et simplex rule.
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.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
|
|
|
|
|
|
Also note, C++ supports falling case (unlike C#), whereby if there is no break keyword, the next case is evaluated as well. This comes handy is some cases.
|
|
|
|
|
|
int me = 0;
switch(me)
{
case 0:
cout<<"I need a C++ book"<<endl;
break;
default:
cout<<"I still need a C++ book"<<endl;
break;
}
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Rajesh R Subramanian wrote: int me = 0; switch(me) { case 0: cout<<"I will read a C++ book"<<endl; break; default: cout<<"I am badly in need of a C++ book"<<endl; break; }
he he he nice one1
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/codeProject$$>
|
|
|
|
|
|
You should really really buy a book and learn C++ from the basics. Even if people already told you so, you don't seem to see the benefits from it. Of course, you'll spend some time doing only this (and not going any further in your project) but on the long term (and even shorter) you'll be far more efficient.
C++ is not a language where you can guess what to write and expect it to work. Even if your program compiles, you'll still have a lot of runtime problems (crashes, memory leaks, ...) and if you don't understand what you are doing, that will be a hell of a job to fix them.
And another point: people on the forum will get bored seing you posting 10 questions a day. And what will probably happen is that the quality of the answers will decrease because you don't make any effort to learn and expect us to do the job for you.
|
|
|
|
|
What's the problem with you stupid dork ?
not only you spam the forum with your minimalistic questions, but you delete it once you get an answer, so that no one here can see what was asked at first.
dude ! this is not a chat, it's a forum. if you can't wait, go somewhere else.
|
|
|
|
|
5. But I'll guess a hazard your suggestions are going into (if at all) deaf ears.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
Rajesh R Subramanian wrote: going into deaf ears.
fell on deaf ears[^]
falls on deaf ears
falling on deaf ears
led mike
|
|
|
|
|
Didn't know that.
Nobody can give you wiser advice than yourself. - Cicero
.·´¯`·->Rajesh<-·´¯`·.
Codeproject.com: Visual C++ MVP
|
|
|
|
|
I know others have said it, but let me just add something
If you're too stubborn to buy a book when you plainly know zero about C++, and you're too stupid to use google, then no matter how many people here answer your basic entry level questions, you will never, ever learn C++. Learning involves more than asking people to do stuff for you. It involves literacy, it involves understanding the need to study, and in this case, it involves being able to search for yourself. You are honestly telling me that a google search doesn't turn up the correct syntax for a switch statement ?
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
Hi Experts,
I am creting a shell context menu and display the file path selected with right click.
As soon as I click on .lnk file(shortcut) it display the Target file path.
I am using DragQueryFile() to obtain the file path.
What is wromg with it?
|
|
|
|
|
pther wrote: What is wromg with it?
could your code!, might be it help us to understand the problem!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow Never mind - my own stupidity is the source of every "problem" - Mixture
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief and You/codeProject$$>
|
|
|
|
|
<br />
void CCoMenHandler::GetSelectedFiles(LPCITEMIDLIST pidlFolder,IDataObject *pdtobj)<br />
{<br />
<br />
g_szSelectedFiles.RemoveAll();<br />
<br />
if (pdtobj) <br />
{<br />
pdtobj->AddRef();<br />
<br />
STGMEDIUM medium;<br />
FORMATETC fe = { CF_HDROP, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};<br />
<br />
HRESULT hr = pdtobj->GetData (&fe, &medium);<br />
<br />
<br />
if (FAILED (hr))<br />
{<br />
return ;<br />
}<br />
<br />
char path[MAX_PATH];<br />
<br />
UINT fileCount = DragQueryFile((HDROP)medium.lpszFileName, 0xFFFFFFFF,path, MAX_PATH);<br />
<br />
<br />
<br />
if (fileCount>0)<br />
{<br />
g_szSelectedFiles.SetSize(fileCount);<br />
<br />
for (UINT i=0;i<fileCount;i++) <br />
{<br />
memset(path, 0, MAX_PATH);<br />
if (DragQueryFile((HDROP)medium.lpszFileName, i, path, MAX_PATH)) <br />
{<br />
g_szSelectedFiles.SetAt(i, path);<br />
}<br />
<br />
}<br />
<br />
g_szSelectedFiles.FreeExtra();<br />
}<br />
<br />
ReleaseStgMedium(&medium);<br />
}<br />
}<br />
<br />
<br />
|
|
|
|
|
You registered the handler under "*" or under "lnk" in the registry?
|
|
|
|
|
Didn't I reply to this indentical question from an identical person last week? And did you follow up my long reply...?
This is at least the fourth time I've seen you post the question.
Iain.
Iain Clarke appears because CPallini still cares.
|
|
|
|
|
Having a sense of déjà vu, Iain?
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I have placed Cbuttons on CView
the problem is
when i click on a button i am setting its state to true so i am able to retain that blue color vista effect for the selected button
but when click on another button the previously selceted button will get unselected and the blue color vista effect will go but it wont go completely
little bit vista effect still be there on button which was previously selected with mouse ( selected means Clicked)...i am working on vista OS
but i dont wanna have that previously visited button color
what shud i do for that
please help me sorting out the issue
|
|
|
|
|
hi all,
i am savitri,i am from india,i am used the function like the below but it showing error. please some one help me to debug that error please.
SN = A_BUGFIX(ResultSN[ctr])+SN;
this is error:
error C2666: '+' : 4 overloads have similar conversions
thanku all,
savitri.
|
|
|
|