各位好,
有二个对话框,一个对话框(IDC_Dlg1)设置另一的对话框(IDC_Dlg2)的位置。请问怎去调用那个对话框,并即时移动对话框(IDC_Dlg2)位置:
GetDlgItem(IDC_Dlg2)->SetWindowPos(&wndTopMost,m_positionx, m_positiony, 0, 0, SWP_NOSIZE);
运行时这个对话况就会死机,请问有何错误。
SIMON
9 个解决方案
#1
在BOOL Cyoudialog_2::OnInitDialog()
{
}
中使用SetWindowPos(。。。)就可以的!
{
}
中使用SetWindowPos(。。。)就可以的!
#2
我已在Cyoudialog_2::OnInitDialog() 使用SetWindowPos(。。。)
并在对话框(IDC_Dlg1)输入UpdateData(TRUE),
但我不想关闭对话框(IDC_Dlg1)。请问有何方法?
SIMON
并在对话框(IDC_Dlg1)输入UpdateData(TRUE),
但我不想关闭对话框(IDC_Dlg1)。请问有何方法?
SIMON
#3
(IDC_Dlg1)输入UpdateData(TRUE) ?? 加这句干什么?有变量和控件交换数据吗?
IDC_Dlg1 怎么会关闭呢?你不是把IDC_Dlg2的显示代码加到 确定\取消 按钮里去了吧?
要是这样 去掉 CDialog::OnOK(); 或 CDialog::OnCancel(); 语句
IDC_Dlg1 怎么会关闭呢?你不是把IDC_Dlg2的显示代码加到 确定\取消 按钮里去了吧?
要是这样 去掉 CDialog::OnOK(); 或 CDialog::OnCancel(); 语句
#4
SetWindowPos
#5
用SetWindowPos一定行的,我试过
#6
GetDlgItem 是获取本对话框控件的子窗口,所以不对。
应该把对话框(IDC_Dlg2)的实例地址传到对话框(IDC_Dlg1),比如m_pDlg2,再调用
m_dlg2->SetWindowPos(&wndTopMost,m_positionx, m_positiony, 0, 0, SWP_NOSIZE);
应该把对话框(IDC_Dlg2)的实例地址传到对话框(IDC_Dlg1),比如m_pDlg2,再调用
m_dlg2->SetWindowPos(&wndTopMost,m_positionx, m_positiony, 0, 0, SWP_NOSIZE);
#7
另外可以在IDC_Dlg2中定义一个改变自己位置的函数,位置通过参数传递,这样IDC_Dlg1就可以调用它来实现你需要的功能
#8
MoveWindow() or SetWindowPos()
#9
你怎么能用GetDlgItem()来获取对话框的句柄呢?如果说对话框2是由对话框1创建的话,应该会存在一个句柄在对话框1中吧?这样你可以直接使用m_dlg2->SetWindowpos();如果不是由对话框1创建的,那么你就应该想办法保存下来或者查找这个对话框的句柄.
#1
在BOOL Cyoudialog_2::OnInitDialog()
{
}
中使用SetWindowPos(。。。)就可以的!
{
}
中使用SetWindowPos(。。。)就可以的!
#2
我已在Cyoudialog_2::OnInitDialog() 使用SetWindowPos(。。。)
并在对话框(IDC_Dlg1)输入UpdateData(TRUE),
但我不想关闭对话框(IDC_Dlg1)。请问有何方法?
SIMON
并在对话框(IDC_Dlg1)输入UpdateData(TRUE),
但我不想关闭对话框(IDC_Dlg1)。请问有何方法?
SIMON
#3
(IDC_Dlg1)输入UpdateData(TRUE) ?? 加这句干什么?有变量和控件交换数据吗?
IDC_Dlg1 怎么会关闭呢?你不是把IDC_Dlg2的显示代码加到 确定\取消 按钮里去了吧?
要是这样 去掉 CDialog::OnOK(); 或 CDialog::OnCancel(); 语句
IDC_Dlg1 怎么会关闭呢?你不是把IDC_Dlg2的显示代码加到 确定\取消 按钮里去了吧?
要是这样 去掉 CDialog::OnOK(); 或 CDialog::OnCancel(); 语句
#4
SetWindowPos
#5
用SetWindowPos一定行的,我试过
#6
GetDlgItem 是获取本对话框控件的子窗口,所以不对。
应该把对话框(IDC_Dlg2)的实例地址传到对话框(IDC_Dlg1),比如m_pDlg2,再调用
m_dlg2->SetWindowPos(&wndTopMost,m_positionx, m_positiony, 0, 0, SWP_NOSIZE);
应该把对话框(IDC_Dlg2)的实例地址传到对话框(IDC_Dlg1),比如m_pDlg2,再调用
m_dlg2->SetWindowPos(&wndTopMost,m_positionx, m_positiony, 0, 0, SWP_NOSIZE);
#7
另外可以在IDC_Dlg2中定义一个改变自己位置的函数,位置通过参数传递,这样IDC_Dlg1就可以调用它来实现你需要的功能
#8
MoveWindow() or SetWindowPos()
#9
你怎么能用GetDlgItem()来获取对话框的句柄呢?如果说对话框2是由对话框1创建的话,应该会存在一个句柄在对话框1中吧?这样你可以直接使用m_dlg2->SetWindowpos();如果不是由对话框1创建的,那么你就应该想办法保存下来或者查找这个对话框的句柄.