怎么在水平滚动条的左边加一个按钮?就是让滚动条“让出”一点地方给一个button?默认全占满了啊!

yzhshty 2004-12-02 01:42:36
按钮不能放在客户区,因为视图移动的时候按钮也要不动

我想加在滚动条旁边,以前见过这种效果的,不知道怎么做
...全文
124 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzhshty 2004-12-02
  • 打赏
  • 举报
回复
关键是工程太大,怕万一出什么问题~小弟今年才毕业,功力太浅,不敢有太大的动作呵呵~~
我先试试
谢谢!!!!
快乐鹦鹉 2004-12-02
  • 打赏
  • 举报
回复
不是拆分窗口的话,好像难以获取滚动条指针阿。而且拆分窗口也不难阿。
yzhshty 2004-12-02
  • 打赏
  • 举报
回复
只能是拆分窗口啊?
我的工程很大,是sdi的,改成你说的哪个样子会不会很难
快乐鹦鹉 2004-12-02
  • 打赏
  • 举报
回复
CScrollBar* pHBar=GetScrollBarCtrl(SB_HORZ);
这里我要说明一下,GetScrollBarCtrl(SB_HORZ)只能在拆分窗口中使用。因此你的VIEW必须是个拆分窗口。如果你只需要一个窗口,那么有个技巧:先创建拆分窗口,然后将其中一个窗口的大小和位置设置到屏幕上看不到的位置就可以了。我们以前就是这么做的。然后通过这个函数就可以获取横向和纵向滚动条对象指针了。
快乐鹦鹉 2004-12-02
  • 打赏
  • 举报
回复
找到源程序了:
void CMagView::_HScrollBarOnSize(BOOL bModifyYBar)
{
CChildFrame* pFrame = (CChildFrame*)GetParentFrame();
ASSERT(pFrame != NULL);
CHRuler* pHRuler=(CHRuler*)pFrame->GetDlgItem(ID_VIEW_HRULER);

//int iJustPos=pHRuler->IsWindowVisible()?20:0;
int iJustPos=pFrame->m_iJustPos;

CScrollBar* pHBar=GetScrollBarCtrl(SB_HORZ);
CWnd* pParent=pHBar->GetParent();
CRect rect;

GetClientRect(rect);
int iWidth=rect.right-rect.left;

pHBar->GetWindowRect(rect);
pParent->ScreenToClient(rect);
int iHeight=rect.bottom-rect.top;

pHBar->SetWindowPos(NULL,
pFrame->m_wndPage.m_Width-iJustPos+2,
rect.top,
iWidth+iJustPos-pFrame->m_wndPage.m_Width,
iHeight,
SWP_NOZORDER );

if(bModifyYBar){
CScrollBar* pVBar=GetScrollBarCtrl(SB_VERT);
pParent=pVBar->GetParent();

pVBar->GetWindowRect(rect);
pParent->ScreenToClient(rect);
pVBar->SetWindowPos( NULL,
rect.left,
2,
rect.right-rect.left,
rect.bottom-rect.top+7,
SWP_NOZORDER );
}

}
这里pFrame->m_wndPage是个子窗体,用来放一些按钮。窗体的高度等于滚动条高度。
yzhshty 2004-12-02
  • 打赏
  • 举报
回复
还有,我的是从cview继承的
yzhshty 2004-12-02
  • 打赏
  • 举报
回复
pleasehelpme(革命尚未成功,同志仍需努力)
还有什么办法呢?不能让按钮随着view乱跑啊

是sdi工程的,而且工具栏和菜单都不可以用的

happyparrot(快乐鹦鹉)
谢谢你拉!高顶了分全给你!

快乐鹦鹉 2004-12-02
  • 打赏
  • 举报
回复
我找找源程序是怎么做的。我们以前做的效果很好。水平和垂直的滚动条上都加了按钮。
pleasehelpme 2004-12-02
  • 打赏
  • 举报
回复
一定要这样做吗?
关注。。
快乐鹦鹉 2004-12-02
  • 打赏
  • 举报
回复
好像是先获取水平滚动条对象,然后用SetWindowPos之类的修改它的位置。
lzzqqq 2004-12-02
  • 打赏
  • 举报
回复
估计要自己封装CScrollView.
快乐鹦鹉 2004-12-02
  • 打赏
  • 举报
回复
我们以前做的软件有这个功能。不过不是我做的。
huwei001982 2004-12-02
  • 打赏
  • 举报
回复
重载 CScrollView 类 ?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧