Cannot move the focus from control of child dialog to control of parent dialog

jacks_sparrow's Avatar, Join Date: May 2010
Newbie Member
I have two MFC applications, one application acts as a parent which creates the dialog (as a child) dynamically using second application. Second application is the MFC extension dll. I have to move focus in between these two dialogs (parent and child) using tab. For that purpose I used the SetWindowPos() API.


Following is the code in the child dialog.

m_Btn_CheckOne.SetWindowPos(NULL, 20, 20, 60, 25, 0);
m_Btn_CheckTwo.SetWindowPos(&m_Btn_CheckOne, 20, 80, 60, 25, 0);
m_Btn_CheckThree.SetWindowPos(&m_Btn_CheckTwo, 20, 140, 60, 25, 0);
((CmainDlg*)GetParent())->m_Btn_FromMainDlg.SetWindowPos(m_Btn_CheckThree , 20, 140, 60, 25, 0);


m_Btn_FromMainDlg is the button from the main dialog. And I expect that once I press tab on the button m_Btn_CheckThree focus should get shifted to the m_Btn_FromMainDlg button in the main dialog.


But which is not occurring Focus is get circulated only in child dialog.
Can anybody help me out.
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
You have to manually move the focus from dialog to other one.
0
jacks_sparrow's Avatar, Join Date: May 2010
Newbie Member
Hello Shabbir,

I have the another application with same scenario. In that application child dialog is from the same application instead of from another MFC Extension DLL application.

Above code is working fine in above mentioned application. So I wondered how is it?
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
When you have 2 different set of dialogs the tab order can be jumbled for various reasons and so it is best to be done manually
0
jacks_sparrow's Avatar, Join Date: May 2010
Newbie Member
Can you help me to go into that various reasons, please give any reference, doc, link to this.
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
One of them is your child dialog does not have the Tab order correctly set to and other could be that tab order of your button and your next child window is not in order.