gpt4 book ai didi

input - MFC 专注于我的输入框的第一个字段

转载 作者:行者123 更新时间:2023-12-05 01:52:54 24 4
gpt4 key购买 nike

我是MFC的初学者,我只想默认选中我的输入框,准备在弹出输入框时用键盘输入文本。

这是我的 C++ .cpp 类文件:

testInputBox::testInputBox(CWnd* pParent /*=nullptr*/)
: CDialogEx(IDD_INPUT_BOX, pParent)
, warning(_T(""))
{

}

testInputBox::~testInputBox()
{
}

void testInputBox::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT_INPUT_BOX, editcedit);

DDX_Text(pDX, IDC_STATIC_MESSAGE, warning);
DDV_MaxChars(pDX, warning, 100);
}

BEGIN_MESSAGE_MAP(testInputBox, CDialogEx)
ON_EN_CHANGE(IDC_EDIT_INPUT_BOX, &testInputBox::OnEnChangeEdit1)
ON_BN_CLICKED(IDOK, &testInputBox::OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, &testInputBox::OnBnClickedCancel)
ON_STN_CLICKED(IDC_STATIC_MESSAGE, &testInputBox::OnStnClickedStaticMessage)
END_MESSAGE_MAP()

最佳答案

您需要覆盖 OnInitDialog() CDialogEx 类的成员,并在该覆盖中将焦点设置到所需的控件。然后,因为您已经明确地设置了焦点,您的覆盖函数应该返回零(或 FALSE)。

假设您的 editcedit 是指向您希望获得焦点的控件的指针,那么您的覆盖将如下所示:

BOOL testInputBox::OnInitDialog()
{
CDialogEx::OnInitDialog(); // Always call base class function
// ... anything else you want to do here
editcedit->SetFocus(); // Or: GetDlgItem(IDC_EDIT_INPUT_BOX)->SetFocus();
return FALSE;
}

你的覆盖应该在类中声明如下:

class testInputBox : public CDialogEx
{
//...
protected:
BOOL OnInitDialog() override;
//...
};

关于input - MFC 专注于我的输入框的第一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71349348/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com