按钮不能放在客户区,因为视图移动的时候按钮也要不动我想加在滚动条旁边,以前见过这种效果的,不知道怎么做
解决方案 »
- 求助:hdib是成员变量,指向已打开的位图信息首地址
- c++的最基本问题
- 请问类似于Static Text这样的控件使用什么方法实现?
- 请教关于TCP的分片问题?
- *****UP有分!!!关于CFileDialog的使用!!!******
- 如何在对话框中加入图片(不是你想的那么简单!)
- 哪位高手可以详细的帮我讲一下:怎样把对话框改变成别的形状??还有把按键改成圆形的?? 在线等!!
- win7下!将本进程设置为静音!而且在合成器中可以看到本进程是静音的图标!但是仍然能听到声音!为什么?是不是后续还有什么步骤?
- (高分求教)dbgrid 出现一个问题,请指教
- 怎样删掉程序自已所在的目录和程序本身
- 传文件出现顺序相反的现象
- 小问题,大侠帮忙!
还有什么办法呢?不能让按钮随着view乱跑啊是sdi工程的,而且工具栏和菜单都不可以用的happyparrot(快乐鹦鹉)
谢谢你拉!高顶了分全给你!
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是个子窗体,用来放一些按钮。窗体的高度等于滚动条高度。
这里我要说明一下,GetScrollBarCtrl(SB_HORZ)只能在拆分窗口中使用。因此你的VIEW必须是个拆分窗口。如果你只需要一个窗口,那么有个技巧:先创建拆分窗口,然后将其中一个窗口的大小和位置设置到屏幕上看不到的位置就可以了。我们以前就是这么做的。然后通过这个函数就可以获取横向和纵向滚动条对象指针了。
我的工程很大,是sdi的,改成你说的哪个样子会不会很难