Edit嵌入对话框 只能重载Edit了 想起来是个很复杂的工作 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我有重载Edit,写了个CScrollEdit类实现了如下方法void CScrollEdit::PreSubclassWindow() { // TODO: Add your specialized code here and/or call the base class //自建滚动条 ,m_vBar为自建滚动条 ,BAR_WIDTH为m_vBar的宽度 =16 CRect rc; GetClientRect(&rc); rc.left =rc.right - BAR_WIDTH; m_vBar.Create(WS_CHILD|SBS_VERT,rc,this,100); EnableScrollBarCtrl(SB_VERT); CEdit::PreSubclassWindow();}void CScrollEdit::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default SCROLLINFO ScrInfo; GetScrollInfo(SB_VERT,&ScrInfo); m_vBar.SetScrollInfo(&ScrInfo); int pos; pos = m_vBar.GetScrollPos(); switch ( nSBCode ) { case SB_LINEUP: pos -= 1; break; case SB_LINEDOWN: pos += 1; break; case SB_PAGEUP: pos -= 10; break; case SB_PAGEDOWN: pos += 10; break; case SB_TOP: pos = ScrInfo.nMin; break; case SB_BOTTOM: pos = ScrInfo.nMax; break; case SB_THUMBPOSITION: pos = nPos; break; default: return; } if ( pos < ScrInfo.nMin ) pos = ScrInfo.nMin; else if ( pos > ScrInfo.nMax ) pos = ScrInfo.nMax; m_vBar.SetScrollPos(pos); CEdit::OnVScroll(nSBCode, nPos, pScrollBar);}但拉动滚动条,鼠标一松,滚动条又滚动到最上面了,知道为什么吗?并且我追踪到,拖动鼠标时,有响应SB_THUMBPOSITION操作,但就是没办法定位到我拖动的位置 初学SNMP,想知道SNMP能开发出什么软件? emule 编译问题 VS2005下怎么添加继承自CButton的CMyButton类对象啊 VSS2005的一个小问题 关于控件界面的问题,大家请进!!! 获取系统文件夹的问题 com的接口函数怎么返回一个bool值(快没分只能给50了) 在VC中怎样调用一个函数 两个简单的概念问题 SQL 语句Group by 问题 改变单视图文档的标题栏字体大小 使用CPictureEx加载GIF图片怎么设置透明
实现了如下方法
void CScrollEdit::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
//自建滚动条 ,m_vBar为自建滚动条 ,BAR_WIDTH为m_vBar的宽度 =16
CRect rc;
GetClientRect(&rc);
rc.left =rc.right - BAR_WIDTH;
m_vBar.Create(WS_CHILD|SBS_VERT,rc,this,100);
EnableScrollBarCtrl(SB_VERT);
CEdit::PreSubclassWindow();
}
void CScrollEdit::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default SCROLLINFO ScrInfo;
GetScrollInfo(SB_VERT,&ScrInfo);
m_vBar.SetScrollInfo(&ScrInfo);
int pos;
pos = m_vBar.GetScrollPos();
switch ( nSBCode )
{
case SB_LINEUP:
pos -= 1;
break;
case SB_LINEDOWN:
pos += 1;
break;
case SB_PAGEUP:
pos -= 10;
break;
case SB_PAGEDOWN:
pos += 10;
break;
case SB_TOP:
pos = ScrInfo.nMin;
break;
case SB_BOTTOM:
pos = ScrInfo.nMax;
break;
case SB_THUMBPOSITION:
pos = nPos;
break;
default:
return;
}
if ( pos < ScrInfo.nMin )
pos = ScrInfo.nMin;
else if ( pos > ScrInfo.nMax )
pos = ScrInfo.nMax;
m_vBar.SetScrollPos(pos);
CEdit::OnVScroll(nSBCode, nPos, pScrollBar);
}
但拉动滚动条,鼠标一松,滚动条又滚动到最上面了,知道为什么吗?
并且我追踪到,拖动鼠标时,有响应SB_THUMBPOSITION操作,但就是没办法定位到我拖动的位置