如何去掉单文档中的水平滚动条和垂直滚动条 如题 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CWnd::ShowScrollBar(UINT nBar, BOOL bShow = TRUE )nBar可取得值:SB_BOTH 指定水平垂直方向的滚动条SB_HORZ 指定水平滚动条SB_VERT 指定垂直滚动条bShow表示是否显示应该在CYouView的构造函数或者CMainFrame::OnCreate里调用 视图类的PreCreateWindow函数屏蔽下面的代码// cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping cs.style = 0;cs.style = ( WS_OVERLAPPEDWINDOW | WS_MAXIMIZE );//处于最大化cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL);不行, 还是去不掉 是屏蔽这行代码cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); To:f26511314:给我发原代码可以吗?我真的找不到 在OnInitialUpdate()中添加ShowScrollBar(SB_BOTH,FALSE);试一下 要真正隐藏滚动条, 必须响应ON_WM_WINDOWPOSCHANGING(),如下隐蔽了水平滚动条:void CMyView::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) { CScrollView::OnWindowPosChanging(lpwndpos); // TODO: Add your message handler code here ShowScrollBar (SB_BOTH, FALSE); ModifyStyle (WS_HSCROLL, 0, SWP_DRAWFRAME);}但是为为了能使视图滚动,必须响应ON_WM_HSCROLL(),设置视图的Pos,如下:void CBaseView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { // TODO: Add your message handler code here and/or call default CPoint pt = GetScrollPosition(); CSize sz = GetTotalSize(); if(nSBCode == SB_LEFT || nSBCode == SB_LINELEFT || nSBCode == SB_PAGELEFT) { pt.x -= 10; pt.x = (pt.x<0)?0:pt.x; } else if(nSBCode == SB_RIGHT || nSBCode == SB_LINERIGHT || nSBCode == SB_PAGERIGHT) { pt.x += 10; pt.x = (pt.x>sz.cx)?sz.cx:pt.x; } else if(nSBCode == SB_THUMBPOSITION || nSBCode == SB_THUMBTRACK) { pt.x = ((LONG)nPos>=0 && (LONG)nPos<sz.cx)?nPos:pt.x; } ScrollToPosition(pt); Invalidate();}某种意义上说,这种方可实现使水平滚动条搬家. DLL中怎么加载窗口资源 怎么获得OutLook Express里所有的联系人?急 如何通过剪贴板复制粘贴JPG图! 最近在研究模板,问个麻烦的问题 关于CTime类的问题 一个MFC 扩展dll 中只能输出一个类吗? 一个进程能获得的最大内存是多少? 究竟怎么掉用htmlhelp?请大家来看看 怎么打开以001结尾的文件? 有保定的朋友吗? 简单问题,回复有分! 无聊,散分,顺便看看大家基础如何?
nBar可取得值:
SB_BOTH 指定水平垂直方向的滚动条
SB_HORZ 指定水平滚动条
SB_VERT 指定垂直滚动条
bShow表示是否显示
应该在CYouView的构造函数或者CMainFrame::OnCreate里调用
// cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL); // Enable word-wrapping
cs.style = ( WS_OVERLAPPEDWINDOW | WS_MAXIMIZE );//处于最大化
cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL);不行, 还是去不掉
cs.style &= ~(ES_AUTOHSCROLL|WS_HSCROLL);
给我发原代码可以吗?
我真的找不到
ShowScrollBar(SB_BOTH,FALSE);试一下
void CMyView::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos)
{
CScrollView::OnWindowPosChanging(lpwndpos);
// TODO: Add your message handler code here
ShowScrollBar (SB_BOTH, FALSE);
ModifyStyle (WS_HSCROLL, 0, SWP_DRAWFRAME);
}但是为为了能使视图滚动,必须响应ON_WM_HSCROLL(),设置视图的Pos,如下:void CBaseView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
CPoint pt = GetScrollPosition();
CSize sz = GetTotalSize();
if(nSBCode == SB_LEFT || nSBCode == SB_LINELEFT || nSBCode == SB_PAGELEFT)
{
pt.x -= 10;
pt.x = (pt.x<0)?0:pt.x;
}
else if(nSBCode == SB_RIGHT || nSBCode == SB_LINERIGHT || nSBCode == SB_PAGERIGHT)
{
pt.x += 10;
pt.x = (pt.x>sz.cx)?sz.cx:pt.x;
}
else if(nSBCode == SB_THUMBPOSITION || nSBCode == SB_THUMBTRACK)
{
pt.x = ((LONG)nPos>=0 && (LONG)nPos<sz.cx)?nPos:pt.x;
}
ScrollToPosition(pt);
Invalidate();
}
某种意义上说,这种方可实现使水平滚动条搬家.