首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将夹钳添加到PropertySheet中?

如何将夹钳添加到PropertySheet中?
EN

Stack Overflow用户
提问于 2016-04-26 17:07:21
回答 1查看 236关注 0票数 3

我有一个从CPropertySheet派生的类,我想在对话框的右下角插入一个“夹子”。

我的对话框已经可以调整大小了,我只是不能插入夹子。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-26 17:55:41

我不知道是否有任何特殊的API来做到这一点。一种选择是手动绘制它,然后重写ON_WM_NCHITTEST并返回HTBOTTOMRIGHT作为夹钳的位置。例如:

代码语言:javascript
复制
void CMyDialog::OnPaint()
{
    CPaintDC dc(this);
    CRect rc;
    GetClientRect();
    rc.left = rc.right - ::GetSystemMetrics(SM_CXHSCROLL);
    rc.top = rc.bottom - ::GetSystemMetrics(SM_CYVSCROLL);
    HTHEME ht = OpenThemeData(m_hWnd, L"STATUS");
    if (ht)
    {
        DrawThemeBackground(ht, dc, SP_GRIPPER, 0, &rc, 0);
        CloseThemeData(ht);
    }
    else
    {
        dc.DrawFrameControl(rc, DFC_SCROLL, DFCS_SCROLLSIZEGRIP);
    }
}

LRESULT CMyDialog::OnNcHitTest(CPoint point)
{
    CRect rc;
    GetWindowRect(rc);
    rc.left = rc.right - ::GetSystemMetrics(SM_CXHSCROLL);
    rc.top = rc.bottom - ::GetSystemMetrics(SM_CYVSCROLL);
    if (rc.PtInRect(point))
        return HTBOTTOMRIGHT;
    return CDialog::OnNcHitTest(point);
} 

void CMyDialog::OnSize(UINT type, int cx, int cy)
{
    CDialog::OnSize(type, cx, cy);
    Invalidate(TRUE);
}

添加到消息地图:

代码语言:javascript
复制
ON_WM_PAINT()
ON_WM_NCHITTEST()
ON_WM_SIZE()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36871397

复制
相关文章

相似问题

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