如果在运行时添加两个按钮,mfc 按钮将显示不完整

Posted

技术标签:

【中文标题】如果在运行时添加两个按钮,mfc 按钮将显示不完整【英文标题】:mfc buttons will display incompletely if adding two buttons at runtime 【发布时间】:2013-01-17 09:50:05 【问题描述】:
CButton *btn = new CButton();
btn->Create("btn", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(0,0,50,50), this, 1234);
btn = new CButton();
btn->Create("btn", WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(40,30,50,50), this, 1234);

在 CDialog::OnInitDialog() 中运行上述代码只会正确显示第一个按钮,第二个按钮将显示不完整。

欢迎提出任何建议。

【问题讨论】:

【参考方案1】:

您正在使用的 CRect 构造函数没有按照您的想法执行。 4 parameter override 将左、右、上、下作为参数。您只是使矩形太小-它没有不完整的地方。

顺便说一句,您要为两个控件提供相同的控件 ID 1234 - 这可能很危险 - 您应该为它们提供唯一值。

【讨论】:

以上是关于如果在运行时添加两个按钮,mfc 按钮将显示不完整的主要内容,如果未能解决你的问题,请参考以下文章

MFC 命令按钮控件如何在多字节字符集项目中显示?

MFC 在自定义工具栏上添加有下拉菜单的按钮。

MFC:如何根据按钮单击交替显示两个组框?

MFC CTabCtrl如何为选项卡添加关闭按钮

如何在 C++ 中向 MFC 项目添加另一个 gui

如何在 MFC 的按钮中添加图像和文本?