为什么具有child风格的对话框都不能获得输入焦点,对话框上的Edit控件都没法用。而且setFocus也不好使。
并且对话框只能设置成child风格,因为设置成popup的话,会移到主对话框外面去的。
10 个解决方案
#1
怎么没人啊
#2
//主对话框初始化:
...
// TODO: Add extra initialization here
pChildDlg=new CChildDlg;
pChildDlg->Create(IDD_DIALOG1 );//产生一个对话框资源IDD_DIALOG1
pChildDlg->ShowWindow(SW_SHOW);
...
...
// TODO: Add extra initialization here
pChildDlg=new CChildDlg;
pChildDlg->Create(IDD_DIALOG1 );//产生一个对话框资源IDD_DIALOG1
pChildDlg->ShowWindow(SW_SHOW);
...
#3
不懂,什么意思
#4
是不是对话框被禁止了?看看风格里的Disable是不是被勾选了
#5
在对话框属性里钩上Control和 Control Parent。前者是必须的,后者是让你按Tab键的时候能进入子对话框内部。
#6
确实是这样的,但是我勾上Control后,对话框边框变没了,标题栏也变没了。
#7
子窗口形式的对话框当然没有标题栏一类的东西,因为那已经是控件一般的存在了。按你的要求的话,你该用多文档界面,而不是对话框子窗口。再要么你就自己做窗口,反正对话框这种现成做好的东西是没办法满足你的要求的。
#8
//主对话框初始化:你的主对话框中BOOL CDlgindlgDlg::OnInitDialog()
//中加:
...
// TODO: Add extra initialization here
pChildDlg=new CChildDlg;
pChildDlg->Create(IDD_DIALOG1);//产生一个对话框资源IDD_DIALOG1
//这个IDD_DIALOG1是通过资源编译器加入一个对话框产生的,再通过classwizard产生一个类
//叫CChildDlg。
//这句也可以写成:pChildDlg->Create(IDD_DIALOG1 ,this);
pChildDlg->ShowWindow(SW_SHOW);
//中加:
...
// TODO: Add extra initialization here
pChildDlg=new CChildDlg;
pChildDlg->Create(IDD_DIALOG1);//产生一个对话框资源IDD_DIALOG1
//这个IDD_DIALOG1是通过资源编译器加入一个对话框产生的,再通过classwizard产生一个类
//叫CChildDlg。
//这句也可以写成:pChildDlg->Create(IDD_DIALOG1 ,this);
pChildDlg->ShowWindow(SW_SHOW);
#9
兄台,这几天我碰到和你同样的问题。我已经有办法解决了,很简单的,可以在单文档中做出与多文档类似的界面风格。
你这个问题可以这么解决:
1)仍将对话框设置为popup风格,这样edit box控件就能获得焦点。
2)用对话框的setparent函数指定你希望指定的对话框父窗口,这样对话框就不会移到主对话框外面去。
你这个问题可以这么解决:
1)仍将对话框设置为popup风格,这样edit box控件就能获得焦点。
2)用对话框的setparent函数指定你希望指定的对话框父窗口,这样对话框就不会移到主对话框外面去。
#10
TO. Leodream,
很简便的方法,但会有一个新问题,当最小化到任务栏后,左键单击任务栏上程序图标,无法回复原来大小,只能右键单击再选择回复。
可以确认下看。
这个问题让人很头痛,期待更好的的方法。
很简便的方法,但会有一个新问题,当最小化到任务栏后,左键单击任务栏上程序图标,无法回复原来大小,只能右键单击再选择回复。
可以确认下看。
这个问题让人很头痛,期待更好的的方法。
#1
怎么没人啊
#2
//主对话框初始化:
...
// TODO: Add extra initialization here
pChildDlg=new CChildDlg;
pChildDlg->Create(IDD_DIALOG1 );//产生一个对话框资源IDD_DIALOG1
pChildDlg->ShowWindow(SW_SHOW);
...
...
// TODO: Add extra initialization here
pChildDlg=new CChildDlg;
pChildDlg->Create(IDD_DIALOG1 );//产生一个对话框资源IDD_DIALOG1
pChildDlg->ShowWindow(SW_SHOW);
...
#3
不懂,什么意思
#4
是不是对话框被禁止了?看看风格里的Disable是不是被勾选了
#5
在对话框属性里钩上Control和 Control Parent。前者是必须的,后者是让你按Tab键的时候能进入子对话框内部。
#6
确实是这样的,但是我勾上Control后,对话框边框变没了,标题栏也变没了。
#7
子窗口形式的对话框当然没有标题栏一类的东西,因为那已经是控件一般的存在了。按你的要求的话,你该用多文档界面,而不是对话框子窗口。再要么你就自己做窗口,反正对话框这种现成做好的东西是没办法满足你的要求的。
#8
//主对话框初始化:你的主对话框中BOOL CDlgindlgDlg::OnInitDialog()
//中加:
...
// TODO: Add extra initialization here
pChildDlg=new CChildDlg;
pChildDlg->Create(IDD_DIALOG1);//产生一个对话框资源IDD_DIALOG1
//这个IDD_DIALOG1是通过资源编译器加入一个对话框产生的,再通过classwizard产生一个类
//叫CChildDlg。
//这句也可以写成:pChildDlg->Create(IDD_DIALOG1 ,this);
pChildDlg->ShowWindow(SW_SHOW);
//中加:
...
// TODO: Add extra initialization here
pChildDlg=new CChildDlg;
pChildDlg->Create(IDD_DIALOG1);//产生一个对话框资源IDD_DIALOG1
//这个IDD_DIALOG1是通过资源编译器加入一个对话框产生的,再通过classwizard产生一个类
//叫CChildDlg。
//这句也可以写成:pChildDlg->Create(IDD_DIALOG1 ,this);
pChildDlg->ShowWindow(SW_SHOW);
#9
兄台,这几天我碰到和你同样的问题。我已经有办法解决了,很简单的,可以在单文档中做出与多文档类似的界面风格。
你这个问题可以这么解决:
1)仍将对话框设置为popup风格,这样edit box控件就能获得焦点。
2)用对话框的setparent函数指定你希望指定的对话框父窗口,这样对话框就不会移到主对话框外面去。
你这个问题可以这么解决:
1)仍将对话框设置为popup风格,这样edit box控件就能获得焦点。
2)用对话框的setparent函数指定你希望指定的对话框父窗口,这样对话框就不会移到主对话框外面去。
#10
TO. Leodream,
很简便的方法,但会有一个新问题,当最小化到任务栏后,左键单击任务栏上程序图标,无法回复原来大小,只能右键单击再选择回复。
可以确认下看。
这个问题让人很头痛,期待更好的的方法。
很简便的方法,但会有一个新问题,当最小化到任务栏后,左键单击任务栏上程序图标,无法回复原来大小,只能右键单击再选择回复。
可以确认下看。
这个问题让人很头痛,期待更好的的方法。