如何在Dialog上动态地设置Default Button?

fish_kun 2008-04-22 06:17:57
如题,我想在一个对话框中动态地设置Default Button.
我在资源中将一个Button的Default Button属性设为True.
在一段代码中,我使用
m_Btn1.SetButtonStyle(BS_PUSHBUTTON);
m_Btn2.SetButtonStyle(BS_DEFPUSHBUTTON);
这段代码使资源中设置的Default Button失效,让另外一个Button设为Default。
但是这段代码却没有效果,何解?
...全文
502 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
iyranly 2008-04-23
  • 打赏
  • 举报
回复
m_btn2.SetButtonStyle(BS_DEFPUSHBUTTON);
m_btn2.SetFocus(); //这一句必须你按回车才能有作用
gz442060097 2008-04-23
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 laiyiling 的回复:]
//去掉确定按钮(IDOK)的默认按钮
Cbutton   *pokbutton = (Cbutton *)GetDlgItem(IDOK);
Pokbutton->ModifyStyle(BS_DEFPUSHBUTTON,0);

// 必须先确保删除原来的Def成功

//添加IDCANCEL的默认按钮风格
Cbutton   *pcancelbutton = (Cbutton *)GetDlgItem(IDCANCEL);
pcancelbutton->SetButtonStyle(BS_DEFPUSHBUTTON);
[/Quote]
我用了你所说的,一进去的时候IDOK还是被选中了,不过按右上角的关闭按钮,就先调用了IDCANCEL
jameshooo 2008-04-22
  • 打赏
  • 举报
回复
你这样设置会出现两个默认按钮
Kudeet 2008-04-22
  • 打赏
  • 举报
回复
//去掉确定按钮(IDOK)的默认按钮
Cbutton *pokbutton = (Cbutton *)GetDlgItem(IDOK);
Pokbutton->ModifyStyle(BS_DEFPUSHBUTTON,0);

// 必须先确保删除原来的Def成功

//添加IDCANCEL的默认按钮风格
Cbutton *pcancelbutton = (Cbutton *)GetDlgItem(IDCANCEL);
pcancelbutton->SetButtonStyle(BS_DEFPUSHBUTTON);
zaodt 2008-04-22
  • 打赏
  • 举报
回复

CDialog::SetDefID
void SetDefID( UINT nID );



SetDefID( ID_BUTTON );
cnzdgs 2008-04-22
  • 打赏
  • 举报
回复
调用对话框类的SetDefID函数。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧