MFC工具栏按钮不显示问题?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC工具栏按钮不显示问题?相关的知识,希望对你有一定的参考价值。

鼠标移动到按钮位置才显示
m_ToolBar.CreateEx( this,TBSTYLE_FLAT , WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS, CRect(5,5,0,0));
m_ToolBar.LoadToolBar(IDR_TOOLBAR_GRAPHICS);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

参考技术A CToolTipCtrl myToolTipCtrl;
m_ToolTipCtrl.Create(this);
m_ToolTipCtrl.Activate(TRUE);
m_ToolTipCtrl.AddTool(&(放按钮句柄),TEXT("按钮需要提示的消息"));追问

不对啊,CToolTipCtrl是干嘛用的

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

【中文标题】如果在运行时添加两个按钮,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 中未显示快速访问工具栏 (QAT)

MFC做了一个工具栏点击某个按钮有隐藏和显示功能

猎豹MFC--在窗口中显示按钮

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

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

为啥我在MFC Toolbar里添加一个按钮,并且写好了这个按钮的消息处理函数,运行的时候还是没有显示出来?