|
Virtual Functions ?
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
|
Well not sure if this is exactly what you need, but here goes.
Define the funtion that you want to call as a pure virtual function in CBaseEvent . Code their implementations in CSysEvent and CGuiEvent .
Now whenever you want to call the function, just upcast the CBaseEvent 's pointer with either CSysEvent or CGuiEvent's address.
CBaseEvent* Base ;<br />
CSysEvent Sys ;<br />
Base = &Sys ;<br />
Base->Function() ;
Hope this was helpful.
---
With best regards,
A Manchester United Fan
The Genius of a true fool is that he can mess up a foolproof plan!
|
|
|
|
|
SaRath C wrote: How can I identify between System Event and GUI event?
Why? The whole design is based on not needing to identify them.
|
|
|
|
|
Dear All,
I have to write an Add-Ins or automation solution for MS-Word to support my own mail merge utility that can enable the user to embed controls[Like Drop Down box]in the word document.
Note:
Existing Mail merge utility in MS-Word enables only to include labels [ie.,texts]
Kindly suggest me a solution.
Karthik M
|
|
|
|
|
|
Hi everyone.
I have a problem, and no ideas...
<br />
class municipality<br />
{<br />
private:<br />
...<br />
<br />
HRGN the_region;<br />
...<br />
}<br />
I work with the array of type municipality, in C++ declared as GLOBAL variable.
<br />
municipality* g_my_municipalities;<br />
<br />
g_my_municipalities = new municipality[size];<br />
Then I loop through the array to do the 'hit tests' etc...
The problem appears when I attempt to transform the regions (HRGN).
I used the following routine to transform it:
<br />
void municipality::Transform(float factor, POINT offset)<br />
{ <br />
WORD size;<br />
<br />
LPRGNDATA pData;<br />
<br />
XFORM xfr;<br />
<br />
xfr.eM11 = factor;<br />
xfr.eM12 = 0;<br />
xfr.eM21 = 0;<br />
xfr.eM22 = factor;<br />
xfr.eDx = offset.x;<br />
xfr.eDy = offset.y;<br />
<br />
size = GetRegionData(the_region, 0,0);<br />
<br />
pData = new RGNDATA[size];<br />
<br />
GetRegionData(the_region, size, pData);<br />
<br />
the_region = ExtCreateRegion(&xfr, size, pData);<br />
<br />
delete pData;<br />
}<br />
The problem is that there is a memory leak, but I thought of a following concept:
1) To create and keep the original array of municipalities, preserving the original (untransformed regions),
2) To create temporary array of municipalities and then to fill it with the original values (regions) and then to apply the transformation to this array,
3) To erase the temporary array 'delete [] temp_municipality (go arround the memory leak) in order to free the memory.
The thing is that I do not have an idea on how to design the copy constructor for the municipality class, for the member HRGN.
I would appreciate the help on this!
Thanks in advance...
|
|
|
|
|
Where exactly you are getting the leak ??? Debug the code and let us know.
Appu..
"If you judge people, you have no time to love them."
|
|
|
|
|
Well, the leak appears at the Transform function, it seems to me that every time the code does:
the_region = ExtCreateRegion(&xfr, size, pData);
i.e. assigns the newly created (trasnformed region) to the_region member
the memory leaks.
If one is interested to debug this I will send an entire source code, but for now I would like to get around with the two arrays and the proper copy constructor.
|
|
|
|
|
|
Well, I got inspired, I did try the DeleteObject earlier but now I solved the problem by involving two data members of HRGN, where, before transforming one of the members I dele it with DeleteObject and then use the ExCreateRegion to re-create new region from the original and then apply the new transorfmation data!
However, I would still appreciate if anyone could 'teach us' on how to implement the copy constructor involving the HRHN, HWND, HDC and the rest of the GDI interesting structures!
|
|
|
|
|
nermsk wrote: delete pData;
Try this
delete[] pData;
|
|
|
|
|
how can i get the Gmt time
WithOut Using the CUrrentTime function.
i tried with GetGmtTm(),
it's not working with out CurrentTime,
But we did not use CurrentTime.
sree.
|
|
|
|
|
Lets see:
You did create a CTime -variable initialized it with your time (complete wit correct timezone and such), called GetGmtTm() on it and read out the time from the tm struct you got.
What exactly went wrong?
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
|
|
Try out the example here[^] and see if it works.
|
|
|
|
|
Hi,
I can not set the breakpoint in the coding.I check the Set Active Configuration mode in Build menu.Its in debug mode only.Then why its happening like this.
I have like this problem lot of time.But i check configuration settings,its in release mode,then i check tht to debug mode,and i can set break point.
I do the same thing now,but its not working.When i keep breakpoint,it tells that the breakpoint get disabled and execution is stopped before that line.
|
|
|
|
|
What IDE are you using ? You may also check that you build with the 'Generate debug information' or 'Program Database for Edit & Continue' (depends of the IDE).
Be sure also that your breakpoint is on a valid instruction (something that produces assembly code, declaring a variable for example doesn't produce assembly code).
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
I am using vc++ 6 version.And i keep the breakpoint in a valid place.Not in any declaration position.But i dont know why its coming but i got a solution.What i did is ...
In link tab, output file name the path is simple exe name,not like debug\new.exe.
So i changed the file name as debug\new.exe.then its working properly.
But i dont want to create my exe in debug folder.So, again i changed output file name simply as new.exe.
Now also its working properly.
I dont know wats happened inside that.Simly i confused.But i got the solution.
|
|
|
|
|
Check the Exe in the Settings->Debug->Executable for Debug Session and Settings->Link->OutPut file name are pointing to the same Debug Exe
Appu..
"If you judge people, you have no time to love them."
|
|
|
|
|
From time to time, I have had similar problems (VC6). A "Rebuild All" usually fix the problem.
|
|
|
|
|
Make sure that file you put break point have been added to your project file list.
Clean (manually) all the files in the debug folder. the rebuild again.
Sometimes you are editing copy the file from some other location or the file not have added to you project source files.
SaRath.
"Do Next Thing..."
Understanding State Pattern in C++
|
|
|
|
|
Hi,
Can anyone please explain what is a shared dll.
Here in the article below:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnsetup/html/dlldanger1.asp
it is compared with a statically linked dll, I am aware of this but is shared dll a dynamically loaded dll or something else!
how do we use a shared dll.
Thanks,
Arun.
Arun.
|
|
|
|
|