|
Hello
I need help to add the crystal repot chart object into a report using VC++.
I am using Crystal Report XI and Visual C++ 6.0.
I have two fields based on which i must generate a graph on the report(Dynamically).
Kindly provide me the information to achieve this.
Thank you
Kind Regards
Sandy
|
|
|
|
|
I have been trying to make a window (not dialog) modal without using any of the SDK/MFC functionality provided for this (I am trying to understand how it works internally), but it doesn't seem to be work. This is what I have tried.
* Create the main window with a button.
* On the button press, create a child window with its own windows proc (this will be our modal window) with a button on it (to close it)
* Disable the main window, show the child window and start a standard message loop.
* If the button on the child window is pressed set a flag to ensure we end the message loop
Unfortunately, as soon as the secondary (child window) loop starts, the whole UI freezes up - it responds to neither keyboard nor mouse events (although it still paints fine). Both my main as well as modal message loops are the same:
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
The code above does not show the 'EndDialog' mechanism, but thats not the problem. I wish to know why keyboard and mouse events are not being handled. Therea are no issues if I dont start the message loop (ie. create a 'modeless' window).
--- NAF
|
|
|
|
|
I imagine when you disable the main window, your child window gets disabled as well.
Maybe try disabling the main window before creating the child (that's what MFC does when
creating modal dialogs).
Mark
Mark Salsbery
Microsoft MVP - Visual C++
"Great job team! Head back to base for debriefing and cocktails."
|
|
|
|
|
you might need to set the focus to the child window, otherwise it will not get keyboard and mouses messages, are you doing this?
Yours Truly, The One and Only!
|
|
|
|
|
I have tried that, but doesn't work
Anyway, the focus is required only for the keyboard not the mouse.
|
|
|
|
|
Hi,
I am a bit confused on how to make and use a timer. Currently I have
<br />
void MyClass::func()<br />
{<br />
<br />
<br />
UINT m_Timer = SetTimer(1, 2000, 0);<br />
CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();<br />
ASSERT(pFrame != NULL);<br />
pFrame->OnTimer(1);<br />
<br />
}<br />
where
<br />
void CMainFrame::OnTimer(UINT nIDEvent) <br />
{<br />
<br />
FlashScreen();<br />
CWnd::OnTimer(nIDEvent);<br />
<br />
}<br />
<br />
I wish the screen to blink every 2 seconds. What I dont understand in the examples I have seen is that OnTimer is not explicitly called. So if you have 2 timers how does each timer know which OnTimer to call? I know that the 1st parameter in the SetTimer function is the nIDEvent which is supposed to be assciociated with the OnTimer() to uniquely identify the timer. I hope that you could provide me with an example where OnTimer is invoked? Thanks!
|
|
|
|
|
OnTimer() is not supposed to be called directly, rather when the timer expires, your app will receive a message and this handler will get called. If you have more than one timer, the nIDEvent should be used to identify it. This is the same value that you passed to SetTimer() as the first argument. So you should specify different values for the first param for each timer attached to a particular window.
|
|
|
|
|
Hey thanks for your reply. So in my class where I have defined the function
<br />
void CMainFrame::OnTimer(UINT nIDEvent) <br />
{<br />
<br />
FlashScreen();<br />
CWnd::OnTimer(nIDEvent);<br />
<br />
}<br />
you're saying it is invoked when the time expires as defined in the SetTimer() function (in my case 2000ms). I put a break point in the function above but unfortunately it was not hit... errr isn't it supposed to be if the function is invoked after the 2000ms?
Thanks.
|
|
|
|
|
yes it should happen after 2s, if its not happening perhaps you have not set up the message map for WM_TIMER?
|
|
|
|
|
Yes, that was the problem. I needed
<br />
ON_WM_TIMER()<br />
Thanks for your help.
|
|
|
|
|
I'm not sure if I understood correctly your question. Anyway, you don't have to call OnTimer yourself. This function will be called by the framework when a specific timer fires. The framework will pass in the nIDEvent parameter the Id of the timer that fired. So, for all the timers that expire, you will have only one OnTimer function. In the function, it is up to you to do some specific things depending of the timer (you could use a switch statement and do several different things depending on the Id you receive).
Hope that helps.
|
|
|
|
|
Hey thanks for that. Yes, I was unsure whether I should have invoked the OnTimer() function or if windows does itself.
|
|
|
|
|
Hi,
So in my class where I have defined the function
<br />
void CMainFrame::OnTimer(UINT nIDEvent) <br />
{<br />
<br />
FlashScreen();<br />
CWnd::OnTimer(nIDEvent);<br />
<br />
}<br />
I put a break point in the function above but unfortunately it was not hit... errr isn't it supposed to be if the function is invoked after the 2seconds which was defined in my SetTimer()?
Thanks for any advice.
|
|
|
|
|
|
I am new to VS2005. I want to add the paint member function to my class which is derived from CStatic. I am trying to find class wizard in VS2005 but not able to find it.
Help me
S.Yamini
|
|
|
|
|
Here[^] it is.
Prasad
MS MVP - VC++
|
|
|
|
|
Thanks. I am facing a runtime problem . I am getting the below error after the dialog is displayed.
TODO: <file description=""> has encountered a problem and needs to close.
and then the application closes
S.Yamini
|
|
|
|
|
yaminisridaran wrote: after the dialog is displayed
Which dialog your are talking about ?
Is it dialog for entering function name etc.
Or some thing from your application. If it is former, you probably need to fix the VS installation.
Prasad
MS MVP - VC++
|
|
|
|
|
I have only one dialog box and inside that i have a picture control. I have to access a member function of CImage which is derived class of CStatic. I have to created a control variable of picture control but by default I am able to create CStatic Variable type for picture control but not able to create CImage Variable type for the picture control
S.Yamini
|
|
|
|
|
Leaks memory when used with VS 2005. This is an issue with std::basic_iostream that is fixed in VS SP1 but also affects stringstream and others.
Can someone suggest an alternative for parsing numeric values from a string other that atoi() and its cousins?
|
|
|
|
|
Josh Gray wrote: other that atoi() and its cousins
What is it about atoi() that makes it unacceptable? Not sure I understand what your requirements are.
|
|
|
|
|
Hans Dietrich wrote: What is it about atoi() that makes it unacceptable?
What if atoi returns 0? Was it a bad string, or simply "0"?
|
|
|
|
|
Which is why functions like strtol(...) and its ilk exist. :P
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Josh Gray wrote: This is an issue with std::basic_iostream that is fixed in VS SP1 but also affects stringstream and others.
Wow! I thought they fixed it. So you probably can't use stringstream directly[^] ?
Anyway, there is strtol[^] which is much more robust than atoi, but still a low-level C function.
|
|
|
|
|
Nemanja Trifunovic wrote: Wow! I thought they fixed it. So you probably can't use stringstream directly[^] ?
Nope, anything based around basic::iostream will probably have a leak.
|
|
|
|