Winapi 在NSIS中,如何在对话框窗口中单击后禁用键盘上的ENTER键或阻止同意按钮获得焦点';s文本区?

Winapi 在NSIS中,如何在对话框窗口中单击后禁用键盘上的ENTER键或阻止同意按钮获得焦点';s文本区?,winapi,focus,controls,nsis,enter,Winapi,Focus,Controls,Nsis,Enter,我有一个NSIS安装程序,它显示了我们产品的图片、文本区域中的免责声明、拒绝按钮和接受按钮 我想通过简单地单击键盘上的ENTER键来阻止用户接受该提议 实际上,我已经设置了一个隐藏按钮,默认情况下它不执行任何操作,因此如果按下ENTER键,它不会触发安装 ressource hacker隐藏按钮的代码为: 控件“”,3,按钮,BS|u def按钮| WS|u CHILD | WS|u可见,179,272,0,0 显示对话框窗口后,ENTER键不会触发accept按钮,因为hidden按钮是默认按

我有一个NSIS安装程序,它显示了我们产品的图片、文本区域中的免责声明、拒绝按钮和接受按钮

我想通过简单地单击键盘上的ENTER键来阻止用户接受该提议

实际上,我已经设置了一个隐藏按钮,默认情况下它不执行任何操作,因此如果按下ENTER键,它不会触发安装

ressource hacker隐藏按钮的代码为:

控件“”,3,按钮,BS|u def按钮| WS|u CHILD | WS|u可见,179,272,0,0

显示对话框窗口后,ENTER键不会触发accept按钮,因为hidden按钮是默认按钮,并且没有问题

问题是,如果用户单击免责声明的文本区域并按ENTER键,则会触发安装。(我注意到焦点没有转到“接受”按钮)

ressource hacker的文本区域代码为:

控件“”,1000,“RichEdit20A”,左键|多行|只读|右键|子键|可见|右键|右键| VSCROLL,113449,79

有没有关于如何防止键盘的ENTER键触发accept按钮的想法


提前感谢。

您可以通过发送来尝试指定对话框中的默认按钮。

这是哪种页面类型?许可证nsDialogs?我使用了“SendMessage$HWNDPARENT${DM_SETDEFID}4 0”,但它不起作用(4是我想作为默认按钮的id[与接受按钮不同])。您添加的按钮id是3,但将其更改为4不起作用,结果是NSIS对许可证框有特殊的enter处理,并强制单击下一个按钮。。。