我想更改标签的大小。
我们在选项卡中添加了一个结束十字,但它与标签的文本完全冲突。
到目前为止,我已经意识到以下几点:
GetItemRect(int i, RECT* rc)
给了我直肠。我真正想要的是一个SetItemRect。SetItem
无法使用,因为该项目不包含其大小。它是根据我提供的内容计算的。SetSize
应该设置标签的大小(所有标签?)。但是我无法找到不会触发重绘的位置,如果我把它放在WM_PAINT的情况下会引发无限循环。这是我自定义绘制标签内容的地方,但我无法在此处调整大小:
LRESULT CSkinnedTabCtrl::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) {
case WM_PAINT: {
...
CPaintDC dc(this);
INT nCount = GetItemCount();
for (INT i = 0; i < nCount; i++) {
CRect rc;
GetItemRect(i, rc);
DrawItem(dc, i, rc);
}
return TRUE;
}
我在哪里设置标签的大小,以及如何设置?
答案 0 :(得分:0)
IIRC你需要覆盖WM_NCCALCSIZE消息。