|
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.
|
|
|
|
|
Dear All,
I am working on a screen capture project.
I am facing a problem of capturing a Menu window of a specific window.
Can any one help me out for a solution?
I am using only Win32-sdk for the assignment.
Thankz in advance,
Suraj Kumar C.D
-- modified at 2:33 Wednesday 21st March, 2007
|
|
|
|
|
I'd start by looking at the active accessibility (MSAA) interfaces.
|
|
|
|
|
Hi ,
I want to add one of my personal folder to the start menu .
Like Recent documents it has to display documents in my personal
folder also.
how can do it?
plz Help me............
|
|
|
|
|
Use Windows API (SHGetSpecialFolderPath IIRC) to get the location of the folder "Programs" and create there a subdirectory where you will create a shortcut to your documents.
|
|
|
|
|
kiranin wrote: I want to add one of my personal folder to the start menu .
Like Recent documents it has to display documents in my personal
folder also.
how can do it?
iShellLink
|
|
|
|
|
Hi am an amateaur vc++ programmer.Just started now!I want to know how do i program the follwing:
i have to select an option in my combo box(a question) and the corresponding answer should appear as chioces in 3 radio buttons.Each time I select a question the option in the radio button should change.What functios should I use and where should I use?
bharathi
|
|
|
|
|
gingerballs wrote: i have to select an option in my combo box(a question)
CComboBox::GetCurSel() would return the index of the selected item in the combo box.
You can override the CBN_SELCHANGE message. When you get this message set the corresponding radio button as selected.
I hope that I understood you correctly...
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|