|
Hi all,
I need to write a dialog based MFC application that has multiple modal dialogs. One of the dialog will be the main dialog and always appear first. For the other dialogs, each may invoke some of the other dialogs for multiple levels based on the input of the user, though no dialog will appear more than once in any instance.
In the application I need a static object that almost all dialogs will access it. How can i do it? Simply speaking, I don't even know how to store a global variable in a dialog based application
Any help would be appreciate.
|
|
|
|
|
Any variable declaration made in your cpp files 'outside' any class implementation will be treated as global.
I usually declare global variables in the App implementation file, just after its declaration.
If you open the implementation file of your CWinApp derived class. This should be called something like <projectname>.cpp (C<projectname>App), towards the beginning you should see the app declaration. Just declare your variable there as you would any other.
/////////////////////////////////////////////////////////////////////////////
// The one and only CMyApp object
CMyApp theApp;
bool global_variable; // this now a global variable
|
|
|
|
|
I have added this line under the CWinApp declaration:
CMyObject D1;
When I try to use it in one of the dialog, I get the following error:
C2065: 'D1' : undeclared identifier
error C2228: left of '.Init' must have class/struct/union type
I have tried to put '::' before 'D1' and I get one more line of error:
error C2039: 'D1' : is not a member of '`global namespace''error.
The strange thing is, the IntelleSense give me 'D1' when I type '::' and 'Init' when I type '.'.
Do I need to include any code in these dialog to let them know the existence of a global variable?
Thanks in advance.
|
|
|
|
|
and now you have o declare the variable so taht other modules can know what the type is.
put "extern CMyObject D1;" in your CWinApp's .H file
-c
Garbage collection, making life better - for weenies!
|
|
|
|
|
Is it really necessary to have a global variable for that ? I mean, if your app is based on a "MainDlg", it is better to store the object you want to be able to access to from "everywhere" as a member of your Maindlg, and override all other DoModal or Create function from other childdlg to pass a pointer on the MainDlg... ´Course, it works with global variables (and it is more simple) but ...
~RaGE();
|
|
|
|
|
I do not like to declare global variables. Instead you may declare it in your CWinApp-derived class and access it like this:
((CMyApp*)AfxGetApp())->m_MyGlobalVariable
Best regards,
Alexandru Savescu
|
|
|
|
|
Does anyone know how to convert a char* to a _variant_t ??
Matt Smith
|
|
|
|
|
That's easy:
v = s;
where v is a _variant_t and s a char*.
Sofus Mortensen
Comet - open source, grunge free COM c++ library
http://www.lambdasoft.dk/comet
|
|
|
|
|
I've tested this and works ok:
_variant_t v;
char *sz;
sz=new char[10];
strcpy(sz, "aaa");
v=sz;
AfxMessageBox((_bstr_t)v);
delete [] sz;
rechi
|
|
|
|
|
exported function (inside dll):
getcomponent()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState());
m_hInThread = AfxBeginThread((AFX_THREADPROC )KIDeviceServiceThreadIn,(PVOID)(CDriver*)this);
}
DWORD WINAPI KIDeviceServiceThreadIn(PVOID pMain)
{
...
pthis->pDocument->UpdateAllViews(); Error use view (when afxMapHWND()==NULL ????;) view - no valid???? but pointer is valid
...
}
|
|
|
|
|
Generally you cannot manipulate the windows from another thread,
this is some thing to do with message pumps.
Try posting a User defined message to the concerned thread and
then Invalidate the Window in that thread from the Message Handler.
|
|
|
|
|
I'm looking for a menu designer and screen designer sample.
Menu designer is just like Visual Studio's one. It lets user to design menu graphically.
Screen designer, just a view that i can move the objects. Any samples i can find, coz I don't know much about GDI.
|
|
|
|
|
Hi all,
I'm working with a Dialog based application.I would like to move a bmp or jpg picture through the bottom of my dialog(say a joker running through the bottom of my dialog) just like a bonzy buddy in which a chimpanzy walks through the bottom of desktop,jumps ,eats a banana etc...
Can any one suggest a method for it?
Shibu K.V.
Senior Research Associate.
VLSI ASIC Hardware Design Group
Electronics R&D Centre,Trivandrum
India
|
|
|
|
|
OnEraseBkgrnd
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
Half the reason people switch away from VB is to find out what actually goes on.. and then like me they find out that they weren't quite as good as they thought - they've been nannied. - Alex, 13 June 2002
|
|
|
|
|
Hi,
I'm working with a dialog based application in which the main dialog is used for logon operation.If the user id and password are correct the main dialog is closed(OnOk() is called) and a second dialog is created using DoModal().But the problem is that if i minimise this dialog its icon is not seen on the task bar just like internet explorer window which moves on to the taskbar on minimising it.In my application if i minimise my dialog the title bar of my dialog gets minimised and it moves on to the left corner of my screen and no information about that window is available on the task bar.How can i rectify it?
Shibu K.V.
Senior Research Associate.
VLSI ASIC Hardware Design Group
Electronics R&D Centre,Trivandrum
India
|
|
|
|
|
Here's how to give a sub-dialog it's own icon
in the constructor of your sub dialog class
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
and in the dialog's ::OnInitDialog
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
Override the dialog's ::OnPaint
void CMyDialog::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this);
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
And finally, as a protected member of the dialog class:
HICON m_hIcon;
All of this will have been done automatically for your main dialog by the MFC AppWizard
--
Help me! I'm turning into a grapefruit!
|
|
|
|
|
I think you should consider the design of the program. You seem to go about the business backwards.
My suggestion is to open a modal dialog (the log-on dialog) from the OnInitDialog function of your main app. Your main app will then be displayed after returning from the log-on dialog.
Cheers,
Fredrik
<right>Sonork ID: 100.11430:PhatBoy
'It is so much simpler to bury reality than it is to dispose of dreams.'
- Don Delillo, Americana
|
|
|
|
|
hi
Got ur problem...u hav 2 dialogs..and in a dialog based app u make ur default dialog login dialog and u create another dialog class to process after the login...the MFC gives all th esupporting code in to the first dialog ..and u want the same for second dialog..so u ask for some code for the minimisation and icon in Taskbar...there is no need of that..u just make the first dialog(MFC give al supporting code)as the dialog after login and u just create a second dialog class and use that in ur OnInitDialog() of the first..problem solved..!!!
"Eliye pedichu illam chudano"???
Renjith-The CPian.
|
|
|
|
|
Hi,
MS Word Automation, If I call the method PageSize, I get the output in inches, how can I get it in Milimeters or Himetric ?
Thanks in advance, greetings
Braulio
PS.: I HATE INCHES !!!! :-P
|
|
|
|
|
|
It seems that not, I don´t know why but it seems that Ms Word makes something strange there
Thanks
Braulio
|
|
|
|
|
somewhere on the web, i thought it was here on codeproject but i dont know it really anymore
i found an article frome someone who used a CFile and make it own crypted version of it and make it usable with CArchive. Did someone know this article. I dont find it anymore.
|
|
|
|
|
i am creating activex combobox using visual c++. i am facing one prob... i would like to know how to resize the combobox corresponding to its fontsize. whenever the fontsize or fontchanges the control has to resize not only the edit portion also the dropdown portion.
thanks in advance.
Shanker
|
|
|
|
|
I want to code a spreadsheet program in DOS mode, can anyone suggest some source code? Thanks!
|
|
|
|
|
I created an MDI application. I dynamically create the document, and the child frame in an MDI applicaiton. However, the title bar in the MDI child frame is empty. I tried use pFram->SetWindowText(myTitle), but it doesn't work. How can I set the title for an MDI child frame programatically ?
|
|
|
|