C++ 有没有办法在编辑公共控件中添加我自己的按钮?

C++ 有没有办法在编辑公共控件中添加我自己的按钮?,c++,windows,winapi,mfc,gdi,C++,Windows,Winapi,Mfc,Gdi,例如,如果在基于MFC的对话框窗口中有默认值: 我正在寻找一种方法,在其内部添加一个小的“X”(或删除)按钮(这是我需要的Photoshop渲染): 有没有办法通过修改默认的编辑控件?< P>请考虑使用新的类 CMFSEITITBLASSECTRL。它确实有方法CMFCEditBrowseCtrl::EnableBrowseButton()可以完全满足您的需要。如果我需要多个按钮,我会研究其他方法: 请参阅CMFCEditBrowseCtrlclass'代码。然后决定是否从中派生类并进行扩

例如,如果在基于MFC的对话框窗口中有默认值:

我正在寻找一种方法,在其内部添加一个小的“X”(或删除)按钮(这是我需要的Photoshop渲染):


有没有办法通过修改默认的编辑控件?

< P>请考虑使用新的类<代码> CMFSEITITBLASSECTRL。它确实有方法
CMFCEditBrowseCtrl::EnableBrowseButton()
可以完全满足您的需要。

如果我需要多个按钮,我会研究其他方法:

  • 请参阅
    CMFCEditBrowseCtrl
    class'代码。然后决定是否从中派生类并进行扩展;或者从CEdit派生,复制
    CMFCEditBrowseCtrl
    code并扩展

  • 如果编辑是多行的,我会研究方法和步骤。如果是单行的话,我会考虑的。然后在编辑的文本区域上实现普通按钮


有关CMFCeditBrowsSectrl类,请参阅本文


右侧的按钮真的是上述编辑公共控件的一部分吗?您可以使用所有者绘图来实现您想要的。@πάνταῥεῖ: 我想用另一个常用的控件,即按钮。业主图纸的问题是。。。嗯,所有的东西都是我自己画的。这显然涉及到视觉样式和主题等。对于已经定义的按钮,如果我能够以某种方式将其显示在编辑控件的顶部,使edit ctrl不绘制按钮放置的位置,并将编辑的右侧边缘限制在按钮之前,我可以消除所有这些。基本上就是你想要的。本质上,您可以将标准编辑控件子类化,并将标准按钮控件放置在其非客户端区域中。只要你做得好,你就可以去了。我担心,像从其他控件元素组合而成的UserControl这样的东西,在MFC中本机是不可用的,除非你使用OLE、COM(ATL)或IIRC之类的技术。@IInspectable:谢谢。这就是我要找的。它不像我想的那么简单,但听起来是可行的。它为现有答案提供的额外贡献是链接和…一个指向解决方案的链接是受欢迎的,但请确保您的答案在没有它的情况下是有用的:这样您的其他用户就会知道它是什么以及它为什么存在,然后引用你链接到的页面最相关的部分,以防目标页面不可用。