Duilib中任意地方取指定字符串大小/宽度(SIZE)、改变窗口大小

来源:赵克立博客 分类: C/C++ 标签:duilib发布时间:2017-10-24 20:53:37最后更新:2017-12-05 11:25:23浏览:2340
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2017-12-05 11:25:23
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

计算文本的大小

通过hdc来取一段文本的宽度和高度

HDC hdc = GetDC(m_hWnd);
SIZE size=CRenderEngine::GetTextSize(hdc, &m_PaintManager,"一些文本",0,0);
//如果想取文字在一个控件上绘制时的宽度大小时用下面的方法 
CLabelUI* m_lab;
HDC hdc = GetDC(m_hWnd);
SIZE size = CRenderEngine::GetTextSize(hdc, &m_PaintManager, szFileName, m_lab->GetFont(),m_lab->GetTextStyle());

改变窗口的大小

在窗口类的OnSize中写入下面代码

RECT rc;
//取当前窗口区域
GetClientRect(m_hWnd, &rc);
//改变窗口大小
rc.right = size.cx+100;
//设置窗口根元素的大小
m_PaintManager.GetRoot()->SetPos(rc);
//移动窗口到指定区域
::MoveWindow(m_hWnd, rc.left, rc.top, rc.right, rc.bottom, true);



微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python