|
hi,
i got an MDI app uses view/doc.
i have 3 views (and docs) that every one of them got a grid control and a button to Add new row.
i want to make a menu that will have the option to Add new row.
the problem is that in the AppWizard i can attach the menu item to only one function in the view.
but i want that no matter which wiew is opened, when i press the Add new row menu item it will work like the button on the view itself.
how can i do that?
|
|
|
|
|
each view should allow you to write a handler for the menu item. Or, you could add a function to your Document class called SetView(ViewType* pView), and depending on the view's type call the appropriate function. Or send a function pointer into the document so that when that menu item is called, it will call which ever function that pointer points to.
If it's broken, I probably did it
bdiamond
|
|
|
|
|
HI,
On pressing Escape Key , my application dialog disappears .... Some one asked me to Override OnOk() and OnCancel() ...but there is no result ...
Plz tell me a good one .
thanx
|
|
|
|
|
Did you remove the call to the CDialog implementation in OnCancel ?
|
|
|
|
|
i got it,,
thanx ,, but wts a relation between Escape key and OnCancel() can u tell me littlte detail
thanx
|
|
|
|
|
Removing Oncancel .... escape key ok
But Clsoe Button in System menu near maximize not works to close application
another problm now
any help abut it
|
|
|
|
|
If you only want to filter the physical keyboard key, look at Anthonys answer below.
|
|
|
|
|
To catch enter key, override OnOK() and do not call CDialog::OnOK()
To catch esc key, override OnCancel() and do not call CDialog::OnCancel()
To have the close [x] button work when you override OnCancel() you have to override OnClose(). In the override call CDialog::OnCancel(). The default behaviour of OnClose() is to call your overridden OnCancel() which you have told to do nothing.
Do not override PreTranslateMessage(). That is just the lazyman's way of hacking things together.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|
|
Please check out the reply in your previous thread..
It has a sample implementation. It might help you...
if not, do not know where the prob is..
|
|
|
|
|
I normally use PreTranslateMessage to prevent unwanted key presses
BOOL CDialogClass::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_ESCAPE)
{
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
Hi All,
We have a set of applications developed in ASP, VB , Visual C++, SQL Server currently running On NT. Now These applications need to be migrated to XP from NT.
Please provide us information on the following
1. Migration\Upgrade strategy.
2. Issues\Risks involved in migration
3. Back up mechanism
4. Data conversion issues.
Any pointers to existing documents/ whitepapers are very useful.
Please guide us in framing the strategy.
Also share your experience while performing such migration.
Thanks and Regards
Balachandar Ganesan.
I want to fully utilize every thing.
|
|
|
|
|
1) I would ensure the applications were tested on XP. The test strategy should endevour to test all code paths. Ideally unit testing should be performed and compared against know good results.
2) Issues, I have had problems with the vanilla XP. You may want to specify at least SP1 as the base OS.
3) Are you going to migrate your development environment to XP? If so why would you not set up a test system to ensure things are running smoothly.
4) No data conversion issues to be worried about.
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
i have declared a public structure in a class. and want to use the same in another class. Following is the how i tried ---
class Aclass:public CTrayDialog
{
public:
struct mine{
int days[7];
int mins;
}count;
.......
.......
}
In the initDialog of the other class
Bool Bclass::OnInitDialog()
{
.......
Aclass *a = new Aclass;
int x = a->count.days[0]
.....
}
Now x is not getting the correct value.
rather i think i m not correctly accessing the structure count declared in class Aclass.
need some help in these regard, so that i can fix the problem.
|
|
|
|
|
Please some1 reply my question
|
|
|
|
|
|
How is any1 supposed to be able to answer? You show a declaration, and say that it's not working. What's wrong with the access?
I suspect that your problem might be the difference between classes and instances, that is, if you have different instances of a class, you'll get different values from the "same" element, but it can only be a guess.
|
|
|
|
|
Where are you setting the data for days in the first place. If it isn't in the class Aclass constructor then the values you are accessing will be the default ones when you create a new instance of the class Aclass and access its data. If the days array has not been initialised they can be anything.
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
No,i m not setting the data in the constructor; i m setting it in member function of Aclass. Is this the reason that i m not getting the value in Bclass?
|
|
|
|
|
Anonymous wrote:
Is this the reason that i m not getting the value in Bclass?
maybe ...
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
Anonymous wrote:
.......<br />
Aclass *a = new Aclass;<br />
int x = a->count.days[0];<br />
.....
Since you create a new instance of Aclass in Bclass. This calls the constructor of Aclass. If Aclass constructor does not call the member function that initialised the data for days then it will contain uninitialised data.
You can either call the initialise member in the constructor of Aclass or change the Bclass code to call the initialise member function
.......<br />
Aclass *a = new Aclass;<br />
a->initialisefunction();
int x = a->count.days[0];<br />
.....
IMO it is better to do the appropriate initialisation within Aclass.
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
Hi, we have found that the last version of crystal reports that was compatible with windows 95 was version 8.5.
Can anyone recommend a good commercial alternative to crystal reports, that works with mfc 7.1
|
|
|
|
|
Wow, still developing for an OS that Microsoft has stopped supporting. Now that must take guts.
I also find it strange that you are also developing with .NET MFC for such an old platform.
As alternatives go, BusinessObject who bought out Crystal Decisions do provide other reporting alternatives. I am unsure if they still support Windows 95 though. I guess you may struggle to find 95 support for such products today.
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
View following code. Mind the new and delete parts. (I didn't write it )
<br />
Param* param;<br />
Param* oldparam = NULL;<br />
ParamValue paramvalue;<br />
param = new Param;<br />
param->SetName(SETTINGS_COMP_MAXNROFLINES);<br />
paramvalue.SetNbrValue(maxnroflines);<br />
param->SetValue(paramvalue);<br />
oldparam = colSettings.GetParamPtr(SETTINGS_COMP_MAXNROFLINES);<br />
delete oldparam;<br />
oldparam = NULL;<br />
colSettings.SetParamPtr(param);<br />
This code works so mind that. The fact is that oldparam will be allocated with new somewhere in another class. Same with param which will be deleted in another class.
Discussion point:
personally I think this is very bad code. I think it would be better practice to keep new and delete in the same class.
What do you think?
"If I don't see you in this world, I'll see you in the next one... and don't be late." ~ Jimi Hendrix
|
|
|
|
|
Basically, you are correct in my opinion. I don't do that myself, however - I often use containers where I allocate on demand (outside the class) and delete in the destructor. But the safest method would be making the Param ctor private, having a factory function in whatever class colSettings is.
Stuff like this often leads to religious wars among developers, but rigid discipline in memory management is indeed one good way to robust code.
|
|
|
|
|
V. wrote:
I think this is very bad code
Good thinking There are so many things [bad] about that code I don't know where to begin. There are several ways it could be changed. Without more context it's difficult to offer direction.
Does Param class have only default ctor or are there any that take parameters? If not why not? Things like that.
"No matter where you go, there your are." - Buckaroo Banzai
-pete
|
|
|
|