|
Sounds like you need a protected member, accessible to derived classes but not outside.
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."
|
|
|
|
|
protected only works for derived types, the member would be seen as private when trying to access from outside ( which is what I am doing if you look again ).
|
|
|
|
|
You could use friend:
class A;
class Base
{
private:
int iSomeVal;
friend A;
};
class A : public Base
{
public:
void Copy( Base* pBase )
{
iSomeVal = pBase->iSomeVal;
}
};
class B : public Base
{
};
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
That works, but rather than having a forward decleration, I made it a friend of itself ( must be a loner )
|
|
|
|
|
WalderMort wrote: but rather than having a forward decleration, I made it a friend of itself
You did what? May I see it please?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
C'mon, it's 9:30 in the morning and I didn't sleep yet, is my humour really that bad
|
|
|
|
|
C'mon, it's 6:30 pm and I'm tired LOL!
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
|
I wanted to get these sets of classes finished, but right now I'm just too tired to even look at the code. I think I'm gonna call it a night, day, mornin... oh whatever...
|
|
|
|
|
Hi
I have a basic question about MFC.
There are methods in MFC which are in overrides section or Message Section.
What is the difference?
For example: For CView class
OnDraw is in overrides section. But OnDrawItem is in messages section.
Why is it so?
What is the concept/logic behind this?
I hope i could explain my question.
Thanks
|
|
|
|
|
The overrides section implies virtual methods that derived classes can override and/or
the class has derived from its base class.
The messages section (which I don't see in the VS 2005 MFC reference) would be for
methods that handle Windows messages (WM_xxx).
A select few Windows messages are handled and rerouted via a virtual
method. CDialog::OnInitDialog() is one (in fact, I can't think of any others off hand).
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thank you.
Overrides are virtual functions as you said. But i couldn't understand the rule for a event/function/message etc.. is defining in overrides part or Messages part in Properties window.
I asked for the concept.
For example for CMainFrame class; OnNotify is virtual(in Overrides) but there is a window message that is WM_NOTIFY so why isn't it in messages section in Properties window.
Thanks again.
|
|
|
|
|
WM_NOTIFY/OnNotify() is another message that MFC catches and reroutes virtually.
WM_COMMAND is another.
I'm not sure why some are done this way and others are not. I can see why every possible
WM_xxx message isn't dispatched through a virtual call, but I'm unsure why every message
isn't handled the same. Maybe to insure MFC gets first crack at those messages?
I guess it works out nicely internally in MFC, but for us it's just inconsistent.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
The thing I don't understand is why the overrides don't populate when user classes derived from user classes have virtual methods, even if they are derived from CObject. It doesn't list the virtual methods except those of CObject. It's almost like it's based on a lookup table and is hardly dynamic.
|
|
|
|
|
Do you mean virtual functions that we add - so we could go to the overrides list and
click to insert a stub in the source code?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Virtual functions that we add to our base classes.
If we create a base class (derived from CObject for instance), add some virtual functions, then derive a class from it, select the derived class, and in the overrides list, only those virtual functions that are in CObject show up currently.
I had expected it to show the virtual functions from any super class but it doesn't appear to work that way.
Not that it's really a big deal, but it struck me as odd. Maybe I'm missing something but I played with a few variations of class hierarchies and it does not appear to pick up on them.
Just a passing comment, by the way.
|
|
|
|
|
It just means that the Intellisense parser ain't that smart.
Software Zen: delete this;
|
|
|
|
|
Hello,
Anybody knows some skin tool to became my APP skinable?
I found SkinCrafter and AppFace? Anybody knows these?
Thanks,
Cris.
|
|
|
|
|
|
Thanks Paresh!!
Do you know this tool?
I am receving the message:
"
----------------------------------------------------------------------------------------------
The evaluation version of the toolkit only supports DLL configurations.
To purchase the full version (with static link support) please visit http://www.codejock.com
----------------------------------------------------------------------------------------------
c:\arquivos de programas\codejock software\mfc\xtreme toolkitpro v11.1.3 for visual studio 6.0\source\xttoolkitpro.h(222) : fatal error C1189: #error : This build configuration is not supported by the evaluation library
"
Can't I test before buy?
[]'s
Cris.
|
|
|
|
|
Hey Friends
Is it possible to read data from another application's owner draw control?
Regards
|
|
|
|
|
1. get the pixels
2. use OCR to figure out what letters they represent
|
|
|
|
|
Thanks a lot
Here the disadvantage i see is that the screen must be displayed always
Is OCR the only way out?
|
|
|
|
|
unles you can convince that application to draw to an off-screen DC< you don't have a choice.
|
|
|
|
|
Hello,
I'm trying to stream data from a microcontroller and I think I have found problem. The data does not stream consistently so it will sometimes send a bunch of packets(5 byte packet) at once and then sometimes send them individual. When the speed at which they come in changes the data seems to become corrupted as only a couple of packets are wrong and then the data continues streaming properly again. I have no idea of what is going wrong here.
I'm using the CSerial library and using the CSerialMFC for the notifications, and just a simply read on event received. Any idea of what could be going wrong here would be great.
Thanks
Simon
|
|
|
|