|
Hi,
I think you can use the FrameRate attribute to get the frame rate.
Siddharth
|
|
|
|
|
Hi
I know that function too... but it seems that it is not that easy to change the frame rate.
Perhaps I should change the question: how to control the frame rate using DirectShow?
thank you
-Houari
|
|
|
|
|
Why change the framerate? Wouldn't that change the motion of the video?
Since you have a "clock" already because you're playing video you shouldn't need to use a timer.
You can base your motion on the timestamp of each frame.
Mark
"Great job, team. Head back to base for debriefing and cocktails."
(Spottswoode "Team America")
|
|
|
|
|
Hi All,
I have some old project that implement some GUI in MFC.
I need to change one of the dialog in this GUI - and i found out that i can do it in very easy way in C#.
Can / How can i mix between those two language ? i want to do in in the easy way - but i don't want to write all the application in C# ... Someone have a idea ?
Thanks for any help.
|
|
|
|
|
Have a look at Managed C++
|
|
|
|
|
|
Yanshof wrote: What is it ?
go here [^]
|
|
|
|
|
Hi,
I have to hide a Dialog from my application in vc++.Which function i have to use???
Thank you.
Siddharth
|
|
|
|
|
siddharthsan wrote: I have to hide a Dialog from my application in vc++.
Then, why you are creating it ?
You can use ShowWindow(SW_HIDE) though.
|
|
|
|
|
Hi,
I dont want to hide the entire window instead of that I have to hide a dialog control...
Siddharth
|
|
|
|
|
this is the same function to use...
CButton* pButton = GetDlgItem(IDC_MY_BUTTON);
pButton->ShowWindow(SW_HIDE);
|
|
|
|
|
Thanks,
It's working but we have create instance for CWnd,
CWnd* pButton = GetDlgItem(IDC_MDGRPX1);
pButton->ShowWindow(SW_HIDE);
Siddharth
|
|
|
|
|
siddharthsan wrote: but we have create instance for CWnd,
CWnd* pButton = GetDlgItem(IDC_MDGRPX1);
pButton->ShowWindow(SW_HIDE);
Toxxct was saying same thing,
CButton* pButton = dynamic_cast<CButton*> (GetDlgItem(IDC_MY_BUTTON)); pButton->ShowWindow(SW_HIDE);
As window returned will be of type CButton in this, you need to use cast operator.
|
|
|
|
|
prasad_som wrote: As window returned will be of type CButton in this
actually, no. the GetDlgItem() function always returns a CWnd* , but thanks to polymorphism, every CWnd inherited classes, you don't need to cast explicitely.
however, and your code is good on this, I always prefer to explicitely type cast because the person who will re-read the code later can understand easily what we wanted to do there.
|
|
|
|
|
toxcct wrote: actually, no. the GetDlgItem() function always returns a CWnd*,
You are not getting my point. In Case of buttons, pointer returned will of of CButton type. Remember thats why down casting it to(dynamic_cast) CButton* is succesful. Otherwise it would have made it NULL
toxcct wrote: every CWnd inherited classes, you don't need to cast explicitely.
Unless you needed functions from CWnd class. To
To understand, what I wanted to say, see pointer returned by GetDlgItem in debugger window.
|
|
|
|
|
prasad_som wrote: You are not getting my point. In Case of buttons, pointer returned will of of CButton type. Remember thats why down casting it to(dynamic_cast) CButton* is succesful. Otherwise it would have made it NULL
is it ?
does the CButton class overload the GetDlgItem() function ? i don't think so.
I still think all that is done here happens because of polymorphism (or i still don't get your point... )
BTW, i don't have an IDE with me, so not able to test anything.
but what i think you see in the debugger is because you assign it to a CButton* pointer. what if you assign a CWnd* variable ?
|
|
|
|
|
toxcct wrote: is it ?
Yup. dynamic cast fails in case of inapproriate down casting. For example, if you changed original code to,
CListBox* pWnd = dynamic_cast<CListBox*>(GetDlgItem(IDC_BUTTON1)); here pWnd will be NULL because GetDlgItem is not returning pointer of type CListBox ( hope you get my point).
toxcct wrote: does the CButton class overload the GetDlgItem() function ?
No it doesn't. I'm not saying that.
toxcct wrote: I still think all that is done here happens because of polymorphism (or i still don't get your point... )
This much only I can explain to make you understand.
|
|
|
|
|
prasad_som wrote: Yup. dynamic cast fails in case of inapproriate down casting. For example, if you changed original code to,
CListBox* pWnd = dynamic_cast<clistbox*>(GetDlgItem(IDC_BUTTON1));
here pWnd will be NULL because GetDlgItem is not returning pointer of type CListBox( hope you get my point).
In order to understand why this happens, you have to know what GetDlgItem() is actually doing. GetDlgItem() will always return a CWnd* , but may or may not return a CButton* or CListBox* . When you call GetDlgItem(), MFC searches the map of window handles for an existing object that is bound to the specified window handle. If one exists, a CTempWnd object is created and returned. If an object is already bound to it, a pointer to that existing object is returned. This means that if there was already a CButton class bound to the IDC_BUTTON1 control, and then called GetDlgItem() , you would get back a a pointer to a CButton object, the one that is already bound to the control.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
DavidCrow wrote: When you call GetDlgItem(), MFC searches the map of window handles for an existing object that is bound to the specified window handle
I was knowing this part only. To be honest.
Thanks for info.
But this leads to one doubt from my side. If control is not bound to any object then it will return CWnd* , in that case is it not possible to cast it to control class(CButton for instance) and then use its functions? That may be needed some time.
|
|
|
|
|
prasad_som wrote: If control is not bound to any object then it will return CWnd*, in that case is it not possible to cast it to control class(CButton for instance) and then use its functions? That may be needed some time.
Not sure why you would want to do this. I always bind each control to a CWnd object so I don't encounter such problems.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Consider, its a check box. In this case to use SetCheck control type might needed of type CButton , I know that, SendMessage can be used in this case down casting would be appropriate, I feel. But it woould be not possible if its associated with CWnd object.
|
|
|
|
|
prasad_som wrote: ...I know that...
Then why even consider doing otherwise?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
DavidCrow wrote: Then why even consider doing otherwise?
In that case, I guess using CWnd* is not needed, too. Simply work in windows handles, like good old win32 API's.
Anyway, Nice to know some new things.
|
|
|
|
|
prasad_som wrote: CButton* pButton = dynamic_cast<cbutton*> (GetDlgItem(IDC_MY_BUTTON)); pButton->ShowWindow(SW_HIDE);
As window returned will be of type CButton in this, you need to use cast operator.
GetDlgItem() does not always return a CButton pointer. In any case, the cast is not necessary. Simply use:
CWnd* pButton = GetDlgItem(IDC_MY_BUTTON);
pButton->ShowWindow(SW_HIDE);
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
siddharthsan wrote: I have to hide a dialog control
ShowWindow is member of Cwnd , so should not be problem with dialog control.
|
|
|
|