如何取得 CListCtrl 的高度? 如何取得一个列表控件 的真实高度? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CListCtrl m_List;CDC *dc = m_List.GetDC();CRect rect;m_List->GetClientRect(&rect);dc->SetMapMode(MM_HIMETRIC); //0.01毫米CSize leftUp(rect.left, rect.top);CSize rightDown(rect.right, rect.bottom);dc->DPtoHIMETRIC(leftUp);dc->DPtoHIMETRIC(rightDown);int actualHeight = abs(rightDown.cy - leftUp.cy);dc->SetMapMode(MM_ANISOTROPIC);m_List.ReleaseDC; 多谢 tsaiyc(),我试一下看。 void GetWindowRect( LPRECT lpRect ) const;class CListCtrl : public CWnd所以用GetWindowRect应该就可以获得 首先重载CListCtrl,选择自绘模式.重载函数void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);lpMeasureItemStruct->itemHeight就是你需要的item高度~~ 我试过了3位好像都不对,这样行吗?CRect m_rectClient;//客户区大小 m_MyListCtrl.GetClientRect(&m_rectClient);int ClientHeight=m_rectClient.Height(); //控件的高度,但好像也不准确。另外,如果分辨率变化了又怎么办? 想问下你需要的高度是实际高度(用格尺量listctrl得出的高度),还是logical单位,或者是device单位?根据需要将映射模式改为相应的就行 我的目的是想在ClistCtrl中插入15行Item,现在已经能够控制每一行的Item的高度,这样只要知道ClistCtrl的高度,然后除以15就是Item的高度了。问题是ClistCtrl的高度是随着分辨率而改变的,这该怎么办? 我原来是根据分辨率大约估算的,但是如果分辨率高的话就不准确:int ClientHeight=::GetSystemMetrics(SM_CYSCREEN)*0.78-109; //估算的ClitCtrl高度int Height = ClientHeight/15; 高分求教项目中遇到的怪异问题:系统存储内存对程序运行,DC等有何影响? 程序运行时,出现错误:afx.inl 行122 难度到底有多大,JPG图转成单位位图 CListCtrl加添行数据是第一行变成乱码!! 一个线程控制的问题?(100分) 我刚学VC,哪有VC视频下载啊??? 请高手给个建议! 帮我看看这个错误是怎么出的,很怪呀 关于LPCTSTR,LPTSTR,CSTRING,CHAR *等等的区别 MFC对话框聊天程序 高级皮肤库skinctrl 1.1更新版 源码 ado 连接方式 向ACCESS数据库表添加float类型数据的SQL语句是什么?
CDC *dc = m_List.GetDC();
CRect rect;
m_List->GetClientRect(&rect);
dc->SetMapMode(MM_HIMETRIC); //0.01毫米
CSize leftUp(rect.left, rect.top);
CSize rightDown(rect.right, rect.bottom);
dc->DPtoHIMETRIC(leftUp);
dc->DPtoHIMETRIC(rightDown);
int actualHeight = abs(rightDown.cy - leftUp.cy);
dc->SetMapMode(MM_ANISOTROPIC);
m_List.ReleaseDC;
LPRECT lpRect
) const;class CListCtrl : public CWnd所以用GetWindowRect应该就可以获得
重载函数void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);
lpMeasureItemStruct->itemHeight就是你需要的item高度~~
CRect m_rectClient;//客户区大小
m_MyListCtrl.GetClientRect(&m_rectClient);
int ClientHeight=m_rectClient.Height(); //控件的高度,但好像也不准确。另外,如果分辨率变化了又怎么办?
int ClientHeight=::GetSystemMetrics(SM_CYSCREEN)*0.78-109; //估算的ClitCtrl高度
int Height = ClientHeight/15;