我目前的一项家庭作业是在对话框中输入字符串(在另一个编辑框中)时在对话框窗口上创建一个“编辑框”,然后单击“添加”按钮。如果操作正确,当我运行程序时->打开对话框->将字符串添加到编辑框->单击添加按钮=>,然后将在屏幕上创建新的编辑框并保留我刚刚键入的字符串。>
所以我这样创建编辑框:
void CSettingDlg::AddEditBoxSet()
{
if (m_pStrAdd.IsEmpty() == FALSE)
{
CEdit *EditBox = new CEdit;
EditBox->Create(WS_CHILD | WS_VISIBLE,
CRect(10, 50, 150, 70), this, 2001);
}
}
那很好。编辑框将显示在对话框窗口中。但这不是我想要的正确位置。因此,我使用这些行(我也在堆栈溢出中发现的那一行来获取坐标:
CRect rect;
CWnd *pWnd = GetDlgItem(IDC_EDIT1);//IDC_EDIT1 is my Editbox id
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
,它返回上方的坐标:左697,上343,右796,下366。 所以我将坐标设置为它:
EditBox->Create(WS_CHILD | WS_VISIBLE,
CRect(697, 343, 796, 366), this, 2001);
但是没有显示,为什么呢。请帮助我。