父对话框和子对话框的初始化顺序有关问题
父对话框和子对话框的初始化顺序问题
我有一个父对话框和了个子对话框,子对话框为CGpsDlg,我在父对话的OnInitDialog函数里写如下代码
但这个代码最后的结果是先完成子对话框的初始化,才能完成父对话框的初始化。
而我现在想要的结果是先完成父对话框的初始化再初始化子对话框,因为在子对话框的初始化里要用到父对话框的一些资源。
请问我该怎么做,或是以上的代码放在父对话框的哪里才比较能达到我想要的效果??
------解决方案--------------------
CGpsDlg *gpsDlg = new CGpsDlg();
gpsDlg->Create(IDD_GPSDLG, this);
不能放在OnInitDialog中,你可以写在onpaint中
------解决方案--------------------
放在OnInitDialog可以 不能放在onpaint 里。。。 你可以先隐藏不显示 等父窗口初始化完成之后 你把数据传到子窗口后 在显示出来
------解决方案--------------------
OnCreate
------解决方案--------------------
OnCreate 函数的最后,return前呢
------解决方案--------------------
其实不用这么复杂,就放在 Init 里面就可以了。
我常是这样做。
如果你不放心,也可以用一个延迟 SetTimer ,迟 300ms 再更新子窗口的值,也可以。
------解决方案--------------------
在 Initdialog 中创建 然后在 onpaint 中添加 :
if (!gpsDlg->IsWindowVisible())
{
gpsDlg->ShowWindow(SW_SHOW);
}
我有一个父对话框和了个子对话框,子对话框为CGpsDlg,我在父对话的OnInitDialog函数里写如下代码
- C/C++ code
CGpsDlg *gpsDlg = new CGpsDlg(); gpsDlg->Create(IDD_GPSDLG, this);
但这个代码最后的结果是先完成子对话框的初始化,才能完成父对话框的初始化。
而我现在想要的结果是先完成父对话框的初始化再初始化子对话框,因为在子对话框的初始化里要用到父对话框的一些资源。
请问我该怎么做,或是以上的代码放在父对话框的哪里才比较能达到我想要的效果??
------解决方案--------------------
CGpsDlg *gpsDlg = new CGpsDlg();
gpsDlg->Create(IDD_GPSDLG, this);
不能放在OnInitDialog中,你可以写在onpaint中
------解决方案--------------------
放在OnInitDialog可以 不能放在onpaint 里。。。 你可以先隐藏不显示 等父窗口初始化完成之后 你把数据传到子窗口后 在显示出来
------解决方案--------------------
OnCreate
------解决方案--------------------
OnCreate 函数的最后,return前呢
------解决方案--------------------
其实不用这么复杂,就放在 Init 里面就可以了。
我常是这样做。
如果你不放心,也可以用一个延迟 SetTimer ,迟 300ms 再更新子窗口的值,也可以。
------解决方案--------------------
在 Initdialog 中创建 然后在 onpaint 中添加 :
if (!gpsDlg->IsWindowVisible())
{
gpsDlg->ShowWindow(SW_SHOW);
}