如何用代码设置某个Button为默认按钮 默认按钮mfc 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用ModifyStyle()函数,增加BS_DEFPUSHBUTTON样式 那么怎么获取原来的ModifyStyle中的值呢,以便我可以将原来的值与BS_DEFPUSHBUTTON进行或运算 根据button的id setfocus可以吗 我觉得setfocus也可以吧。onshowwindow 用ModifyStyle函数要怎么写,我不需要按钮获得焦点,焦点是在文本框我现在写成:((CButton*)GetDlgItem(IDC_NEXT))->ModifyStyle(BS_DEFPUSHBUTTON, 0);((CButton*)GetDlgItem(IDC_MYOK))->ModifyStyle(0, BS_DEFPUSHBUTTON);可是按钮并没有被改变,可是默认按回车还是IDC_NEXT这个按钮在响应 对你的对话框类右键(假若为对话框类为Cxf)->Add windows message handler->PreTranslateMessage在里面编辑代码如下:BOOL Cxf::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base classif(VK_RETURN /*(这里是你想要设置的快捷键,在这里VK_RETURN是回车的意思,想要设置其他的就去搜网上以下虚拟按键,换成其他就行)*/ ==pMsg->wParam){OnButton8();//这里是你对话框上某个button的响应函数名return 1;}return CDialog::PreTranslateMessage(pMsg);} 这种办法可以间接实现,可是我想要设成默认按钮为什么不行:((CButton*)GetDlgItem(IDC_NEXT))->ModifyStyle(BS_DEFPUSHBUTTON, 0);((CButton*)GetDlgItem(IDC_MYOK))->ModifyStyle(0, BS_DEFPUSHBUTTON);另外图中的“继续”按钮是一个默认按钮,我现在焦点是在文本框,但按钮上也有一个蓝色边框来提示用户这个按钮是默认的可如果用你的方法功能上可以实现,但还有些效果还是表现不出来,所以直接用代码设置默认按钮要怎么写呢?我上面写的怎么没有效果,是不是没写对 发送DM_SETDEFID 消息::SendMessage(m_hWnd, DM_SETDEFID, (WPARAM)IDC_BUTTON1, 0);https://msdn.microsoft.com/en-us/library/ms645413%28VS.85%29.aspx 楼上可以或者楼主代码改成这样((CButton*)GetDlgItem(IDC_MYOK))->ModifyStyle(0, BS_DEFPUSHBUTTON);((CButton*)GetDlgItem(IDC_MYOK))->SetFocus();改成默认按钮后使其获取焦点 图像xyz空间转Lab空间,公式? GDI+保存图片到原文件 循环内资源释放问题 一个简单的画直线类出现的问题 如何解决整型溢出? nmake能实现对头文件的增量编译吗? CString Append 的奇怪问题 vc与java! 谁有应用程序间通过 Netbios 进行通讯的例子或文档?(200 分相送) 请问如何等待Shell_NotifyIcon完成再进行下面的步骤呢? Windows客户端开发简介(二) VS2013 串口问题求教
那么怎么获取原来的ModifyStyle中的值呢,以便我可以将原来的值与BS_DEFPUSHBUTTON进行或运算
onshowwindow
((CButton*)GetDlgItem(IDC_MYOK))->ModifyStyle(0, BS_DEFPUSHBUTTON);可是按钮并没有被改变,可是默认按回车还是IDC_NEXT这个按钮在响应
在里面编辑代码如下:
BOOL Cxf::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(VK_RETURN /*(这里是你想要设置的快捷键,在这里VK_RETURN是回车的意思,想要设置其他的就去搜网上以下虚拟按键,换成其他就行)*/ ==pMsg->wParam)
{
OnButton8();//这里是你对话框上某个button的响应函数名
return 1;
}
return CDialog::PreTranslateMessage(pMsg);
}
这种办法可以间接实现,可是我想要设成默认按钮为什么不行:
((CButton*)GetDlgItem(IDC_NEXT))->ModifyStyle(BS_DEFPUSHBUTTON, 0);
((CButton*)GetDlgItem(IDC_MYOK))->ModifyStyle(0, BS_DEFPUSHBUTTON);另外图中的“继续”按钮是一个默认按钮,我现在焦点是在文本框,但按钮上也有一个蓝色边框来提示用户这个按钮是默认的
可如果用你的方法功能上可以实现,但还有些效果还是表现不出来,所以直接用代码设置默认按钮要怎么写呢?
我上面写的怎么没有效果,是不是没写对
::SendMessage(m_hWnd, DM_SETDEFID, (WPARAM)IDC_BUTTON1, 0);
https://msdn.microsoft.com/en-us/library/ms645413%28VS.85%29.aspx
((CButton*)GetDlgItem(IDC_MYOK))->ModifyStyle(0, BS_DEFPUSHBUTTON);
((CButton*)GetDlgItem(IDC_MYOK))->SetFocus();
改成默认按钮后使其获取焦点