VC对话框怎么把焦点设置在一个按钮上

对话框一共就3个控件,一个列表控件,一个静态文本,一个按钮,想把焦点默认设为按钮CTRL+DTaborder改为1,没用OnInitDialog():GetDlgItem... 对话框一共就3个控件,一个列表控件,一个静态文本,一个按钮,想把焦点默认设为按钮
CTRL+D Taborder改为1,没用
OnInitDialog():
GetDlgItem(IDC_Btn_Reset)->SetFocus();
return FALSE;
还是没用
按钮上没有获得焦点的虚线框,按ENTER键也不是对这个按钮的操作,而是关闭对话框
怎么回事呢,郁闷
展开
 我来答
bhtzu
推荐于2017-12-15 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4202万
展开全部
CTRL+D Taborder改为1,是有用的,只是不会有那个虚框。
按ENTER键也不是对这个按钮的操作,在按钮属性上设置为默认按钮(default button)就可以了。
另外注意一下按钮属性中:tab stop是不是选中状态,如果这个没选中肯定不行。
追问
那什么情况下会出现虚线框呢
追答
这个和风格相关啊,有些风格下有,有些没有。
关键不看这里,如果你允许了tab stop,那么程序运行后按tab键,就能看到当前焦点在哪里了。
du瓶邪
推荐于2016-11-10 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2916万
展开全部
设置焦点 以下语句添加在OnInitDialog()函数中
GetDlgItem(ID)->SetFocus(); ID 为控件ID
快捷键在 PreTranslateMessage(MSG* pMsg)函数中设定
至于按TAB 键没反应 检查控件属性设定时 Tab Stop 项是否选中 须选中.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
任明星Ming
2013-08-20 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1146万
展开全部
试试下面这段代码,设置或者取消焦点的,设置焦点时,不光需要发送WM_SETFOCUS还需要发送WM_ACTIVATE。
void SetFocus(BOOL bFocus = TRUE)
{
if(bFocus)
{
::PostMessage(m_hWnd,WM_SETFOCUS, (WPARAM)m_hWnd, 0);
::PostMessage(m_hWnd,WM_ACTIVATE, WA_ACTIVE, 0);
}
else
{
::PostMessage(m_hWnd,WM_KILLFOCUS, 0, 0);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式