gpt4 book ai didi

c++ - 如何将 SetFocus 设置为 CButton 以便边框和焦点虚线可见?

转载 作者:行者123 更新时间:2023-11-30 02:13:25 26 4
gpt4 key购买 nike

我创建了一个简单的基于对话框的应用程序,并使用 Visual Studio 编辑器在默认的 CDialog 中添加了三个按钮(通过拖放它们)。

默认的确定和取消按钮也在那里。

我想在单击按钮 3 时将焦点设置到按钮 1。

我在很多按钮的属性中将属性 Flat 设置为 true。

我这样编码:

void CbuttonfocusDlg::OnBnClickedButton3()
{
// TODO: Add your control notification handler code here
GetDlgItem(IDC_BUTTON1)->SetFocus();

Invalidate();

}

但是 button1 中的边框永远不会被绘制。仅当我在单击按钮 3 之前按 TAB 时,才会绘制插入符号(表示焦点的虚线)。

我希望按钮看起来和我点击它后的样子一模一样。以编程方式在按钮内显示虚线将是一个加号。

我想要的:

http://i33.tinypic.com/11t8pkl.png

我得到的:

http://i37.tinypic.com/160q5hw.png

最佳答案

使用 WM_NEXTDLGCTL

参见 Reymond Chen's "How to set focus in a dialog box" :

void SetDialogFocus(HWND hdlg, HWND hwndControl)
{
SendMessage(hdlg, WM_NEXTDLGCTL, (WPARAM)hwndControl, TRUE);
}

关于c++ - 如何将 SetFocus 设置为 CButton 以便边框和焦点虚线可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/369788/

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