如何在 CMFCPropertyGridProperty 中嵌入(和使用)按钮?

问题描述 投票:0回答:1

我注意到这个 API 调用:

CMFCPropertyGridProperty::AdjustButtonRect
。但是如何向
CMFCPropertyGridProperty
添加按钮呢?我想在右侧显示一个自定义按钮并管理单击该按钮。

为何重新开放?

我太快地将其标记为重复。链接的答案没有提供任何示例代码,我尝试的方法不起作用。经过进一步研究,我在 CodeProject 上发现了另一个对话,说要使用

HasButton()
。如果我将此覆盖添加到我的类中:

BOOL HasButton() const
{
    return TRUE;
}

然后右边会显示

...
,这至少是前进了一步!

然后,我使用 Visual Studio 2022 中的代码搜索功能,注意到一个 undocumented 方法 (

OnClickButton
)!如果我覆盖它:

virtual void OnClickButton(CPoint point)
{
    AfxMessageBox(L"Button clicked!");

}

看来有效!我认为这是将带有事件处理程序的嵌入式按钮添加到属性控件的正确方法。但是,我仍然不知道如何从“...”调整按钮文本。

请重新打开我的问题,我将添加上述内容作为我尝试的答案,作为解决方案的一部分。


更新

我最终复制了上述内容作为重复问题的答案。因为我正在努力让这个重新开放。

visual-c++ mfc propertygrid
1个回答
0
投票

经过进一步研究,我在 CodeProject 上发现了另一个对话,说要使用 [

HasButton()
][2]。如果我将此覆盖添加到我的类中:

BOOL HasButton() const
{
    return TRUE;
}

然后右边会显示

...
,这至少是前进了一步!

然后,我使用 Visual Studio 2022 中的代码搜索功能,注意到一个 undocumented 方法 (

OnClickButton
)!如果我覆盖它:

virtual void OnClickButton(CPoint point)
{
    AfxMessageBox(L"Button clicked!");

}

看来有效!我认为这是将带有事件处理程序的嵌入式按钮添加到属性控件的正确方法。但是,我仍然不知道如何从“...”调整按钮文本。

© www.soinside.com 2019 - 2024. All rights reserved.