首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何正确对齐CMFCLinkCtrl?

如何正确对齐CMFCLinkCtrl?
EN

Stack Overflow用户
提问于 2022-02-07 20:55:42
回答 1查看 104关注 0票数 0

我刚刚在对话框中添加了一个CMFCLinkCtrl

CONTROL "od 9:42-44",IDC_MFCLINK_OD_REFERENCE,"MfcLink",WS_TABSTOP,289,143,42,11

看上去:

目前,它没有映射到任何变量,因为我已经在IDE中设置了URL和文本。但我希望这个工具提示是对齐的。它不会改变大小,但我不希望它进一步向右流动。这个是可能的吗?

我已经查看了IDE中的可用属性,并且没有文本对齐控制:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-08 14:40:20

最后,我不得不使用CHyperlink控件。它是从CMFCLinkCtrl派生出来的。

在对我的问题的评论中,有人建议使用m_nAlignStyle属性。这似乎合乎逻辑,因为链接控件是从CMFCButton派生的。但这行不通。

CHyperlink控件确实使用了上述属性,但是有一个定制的OnDraw处理程序:

代码语言:javascript
运行
复制
// ----------------------------------------------------------------------------------------------------
// Set the alignment for the hyperlink.
// ----------------------------------------------------------------------------------------------------
BOOL CHyperlink::SetTextAlignment(HyperlinkAlignment enumValue)
    {
    if (enumValue == Left)
        {
        m_nAlignStyle = ALIGN_LEFT;
        //SizeToContent(TRUE, FALSE);
        Invalidate();
        }
    else if (enumValue == Right)
        {
        m_nAlignStyle = ALIGN_RIGHT;
        //SizeToContent(TRUE, FALSE);
        Invalidate();
        }
    else if (enumValue == Center)
        {
        m_nAlignStyle = ALIGN_CENTER;
        //SizeToContent(TRUE, TRUE);
        Invalidate();
        }
    else
        {
        return FALSE;
        }

    return TRUE;
    }

注意,我注释掉了SizeToContent调用,因为这样做没有意义。如果将控件大小调整到内容,那么支持对齐(除了垂直)有什么意义?

就我而言,通过:

使用CHyperlink.

  • Adjusting
  1. SetTextAlignment方法.

会管用的。示例:

代码语言:javascript
运行
复制
void CChristianLifeMinistryUtils::InitODLink(CHyperlink& rLinkCtrl)
{
    const LanguageMSA eForeignLang = theApp.GetForeignLanguageGroupLanguageID();
    const CString strODLink = GENERALLABEL3(eForeignLang, IDS_STR_OD_WOL_LINK);
    const CString strODTooltip = GENERALLABEL3(eForeignLang, IDS_STR_OD_WOL_TITLE);

    if (eForeignLang == LanguageMSA::Arabic)
    {
        rLinkCtrl.SetWindowText(_T("ش م 9:42-44"));
    }

    rLinkCtrl.SetURL(strODLink);
    rLinkCtrl.SetTooltip(strODTooltip);
    rLinkCtrl.SetTextAlignment(CHyperlink::Right);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71025283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档