📄 subject_18820.htm
字号:
<p>
序号:18820 发表者:teddy 发表日期:2002-10-23 16:32:49
<br>主题:help me ,关于listview
<br>内容:我用ListView的详细资料模式,想固定某一列(如第一列),该列固定后不随横向滚动条的滚动而滚动,请各位帮帮我,最好能用源码解释。谢谢先。
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:徐景周 回复日期:2002-10-23 16:47:32
<br>内容:重载它,可根据固定那列,建一隐藏分隔条,或者在固定列后重载滚动条。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:teddy 回复日期:2002-10-23 16:58:49
<br>内容:徐景周大虾,请问重载滚动条,要重新确定滚动范围,该滚动范围是<BR>否是:客户区域的宽度-固定烈的宽度?你说的建一隐藏分割条,是否是用来隐藏滚动到客户区外的列?能否列出必用函数?<BR>谢谢,我太着急了,马上就要到时间了,谢谢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:徐景周 回复日期:2002-10-23 17:29:48
<br>内容:视你具体情况而定,类似如下:<BR><BR>CRect CTemplateEditorView::GetVScrollBarRect()<BR>{<BR> CRect rect;<BR> GetClientRect(rect);<BR><BR> //视滚动条的宽度 = 16<BR> rect.left = rect.right - 16;<BR> rect.top = rect.bottom - m_nVScroll;<BR><BR> return rect;<BR>}<BR><BR>void OnSize(UINT nType, int cx, int cy) <BR>{<BR> CScrollView::OnSize(nType, cx, cy);<BR><BR><BR> if (m_ScrollBar)<BR> {<BR> CRect rect = GetVScrollBarRect();<BR> m_ScrollBar.MoveWindow(&rect);<BR> }<BR> <BR>}<BR>CSize CalcScrollSize()<BR>{<BR> CDoc* pDoc = GetDocument();<BR> if ( !pDoc->m_bOpened )<BR> return m_sizeTotal;<BR><BR> CRect rcClient;<BR> GetClientRect(&rcClient); // 获取当前视类的客户区域<BR> CSize tmpSize = rcClient.Size();<BR><BR> CClientDC dc(this);<BR> dc.SetMapMode(MM_LOMETRIC);<BR> dc.DPtoLP( &tmpSize ); // 转换设备坐标到实际数据坐标.<BR><BR> tmpSize.cx -= MIN_BORDER * 2;<BR><BR> CSize szPaper = pDoc->GetMap().GetPaperSize();<BR> double xsc = double( tmpSize.cx ) / szPaper.cx;<BR><BR> // X方向图纸的逻辑尺寸小于客户区时,X方向居中显示<BR> CSize size;<BR> if ( xsc > m_dViewScale )<BR> size.cx = tmpSize.cx + MIN_BORDER * 2;<BR> else<BR> size.cx = int( szPaper.cx * m_dViewScale + MIN_BORDER * 2 );<BR><BR><BR> if ( IsLockFramehader() )<BR> {<BR> //获取当前选中的(或活动的)井<BR> CLogMap& pMap = GetDocument()->GetMap();<BR> CWell* pWell = (CWell*)( pMap.GetWells().GetSingleWellNode()->GetValue() );<BR> //GetSelectWellNode()<BR> CRect rcFrame = pWell->GetFrameRect();<BR> CRect rcPaper = pMap.GetPaperRect();<BR> rcPaper.top = rcFrame.bottom;<BR> rcPaper.NormalizeRect();<BR> szPaper = rcPaper.Size();<BR> size.cy = int( szPaper.cy * m_dViewScale + MIN_BORDER * 2 );<BR> }<BR> else<BR> size.cy = int( szPaper.cy * m_dViewScale + MIN_BORDER * 2 );<BR><BR> return size;<BR>}
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:teddy 回复日期:2002-10-24 08:03:55
<br>内容:十分感谢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -