[[MFC]]在CRect()中输入位置时,无法创建编辑框(使用Create()方法)

时间:2019-05-14 09:30:22

标签: function mfc controls

我目前的一项家庭作业是在对话框中输入字符串(在另一个编辑框中)时在对话框窗口上创建一个“编辑框”,然后单击“添加”按钮。如果操作正确,当我运行程序时->打开对话框->将字符串添加到编辑框->单击添加按钮=>,然后将在屏幕上创建新的编辑框并保留我刚刚键入的字符串。

所以我这样创建编辑框:

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);

但是没有显示,为什么呢。请帮助我。

0 个答案:

没有答案