当前位置: 首页 > news >正文

开发系统网站建设有没有推广app的平台

开发系统网站建设,有没有推广app的平台,邯郸做seo网站优化,优设设计师网站无论在使用QT或者MFC进行界面开发时,都会出现在一个对话框里面存在好多的选项,导致对话框变得非常长或者非常大,就会显现的不美观,在这种情况下通常是添加一个页面的滚动条来解决这个问题,下面我们就来介绍给MFC的对话…

无论在使用QT或者MFC进行界面开发时,都会出现在一个对话框里面存在好多的选项,导致对话框变得非常长或者非常大,就会显现的不美观,在这种情况下通常是添加一个页面的滚动条来解决这个问题,下面我们就来介绍给MFC的对话框添加滚动条和响应鼠标滚轮滚动的事件

在写下面的代码之前需要现在对话框的OnInitDialog()函数中将窗口大小和滚动条长度进行初始化

// 初始化窗口大小
CRect rect;
GetWindowRect(&rect);
TRACE(_T("width:%d height:%d\n"), rect.Width(), rect.Height());
rect.bottom = rect.top + 250;
SetWindowPos(NULL, rect.left, rect.top, 810, 450, SWP_NOZORDER | SWP_NOMOVE);
// 初始化滚动条大小
SCROLLINFO scrollinfo;
GetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);
scrollinfo.nPage = 10;
scrollinfo.nMax = 72;
SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);

给对话框添加滚动条

首先给对话框添加垂直滚动条

点开对话框设计页面→点击属性→将垂直滚动条设置为True

添加垂直滚动条的消息处理函数

右键点击类向导→选择消息→点击添加WM_VSCROLL消息处理程序

在消息处理函数中添加下面的代码,即可实现对话框滚动条滚动

void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{SCROLLINFO scrollinfo;GetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);int unit = 3;scrollinfo.nPage = 10;switch (nSBCode){case SB_LINEUP:          // 向上滚动一行scrollinfo.nPos -= 1;if (scrollinfo.nPos < scrollinfo.nMin){scrollinfo.nPos = scrollinfo.nMin;break;}SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);ScrollWindow(0, unit);break;case SB_LINEDOWN:           // 向下滚动一行scrollinfo.nPos += 1;if (scrollinfo.nPos + scrollinfo.nPage > scrollinfo.nMax)  //此处一定要注意加上滑块的长度,再作判断{scrollinfo.nPos = scrollinfo.nMax;break;}SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);ScrollWindow(0, -unit);break;case SB_PAGEUP:            // 向上滚动一页scrollinfo.nPos -= 5;if (scrollinfo.nPos < scrollinfo.nMin){scrollinfo.nPos = scrollinfo.nMin;break;}SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);ScrollWindow(0, unit * 5);break;case SB_PAGEDOWN:        // 向下滚动一页scrollinfo.nPos += 5;if (scrollinfo.nPos  > (scrollinfo.nMax - scrollinfo.nPage))  //此处一定要注意加上滑块的长度,再作判断{scrollinfo.nPage = 13;SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);break;}SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);ScrollWindow(0, -unit * 5);break;case SB_ENDSCROLL:      // 结束滚动break;case SB_THUMBPOSITION:  // 滚动到绝对位置。当前位置在nPos中提供break;case SB_THUMBTRACK:     // 将滚动框拖到指定位置。当前位置在nPos中提供ScrollWindow(0, (scrollinfo.nPos - nPos) * unit);scrollinfo.nPos = nPos;SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);break;}CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
}

效果展示

响应鼠标滚轮滚动事件

虽然上面的方式实现了对话框页面的滚动效果,但是使用起来依然是不太方便,通常一个页面带有滚动条,这个页面通过鼠标滑动也是可以进行页面滚动的,但是如果只是单单实现了上面的代码,还是达不到我们想要的效果的,这时就需要对鼠标的滚动事件进行进一步的处理

添加鼠标滚动事件处理程序

右键点击类向导→选择消息→点击添加WM_MOUSEWHEEL消息处理程序

在消息处理函数中添加下面的代码,即可实现对话框鼠标滚轮滚动

在鼠标滚动的处理函数中直接调用我们写好的滚动条处理事件即可

BOOL CSettingDlg::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{	SCROLLINFO scrollinfo;GetScrollInfo(SB_VERT, &scrollinfo);if (zDelta == 120){OnVScroll(SB_PAGEUP, GetScrollPos(SB_VERT), GetScrollBarCtrl(SB_VERT));}else if (zDelta == -120){OnVScroll(SB_PAGEDOWN, GetScrollPos(SB_VERT), GetScrollBarCtrl(SB_VERT));}return CDialog::OnMouseWheel(nFlags, zDelta, pt);
}

效果展示

在实现中出现的问题和解决方法

出现的问题:如果在界面的底部不停通过鼠标进行滚动就会出现页面不对或偏移的问题,这个问题的原因是由于滚动条的最下面还有一点空余,之前发现这个问题的解决方法是不移动页面就直接将滚动条向下移,这样就导致了这个问题的出现

问题分析:这个问题的主要原因就是滚动条的长度和页面的长度不匹配导致的问题,但是谁也不能将页面和滚动条的长度进行完全的匹配,最后参考其他应用软件找到了他们处理这个问题的方法,于是运用到了我的这个项目上,把问题解决了

解决方法:解决方法是,当滑动到底部时不改变滚动条的位置,而是修改滚动条的长度来解决这个问题

OnVScroll函数代码的SB_PAGEDOWN分支就是基于这种方式实现的

case SB_PAGEDOWN:scrollinfo.nPos += 5;if (scrollinfo.nPos  > (scrollinfo.nMax - (int)scrollinfo.nPage))  //此处一定要注意加上滑块的长度,再作判断{// 不移动页面,只是将滚动条的长度增加scrollinfo.nPage = 13;SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);break;}SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);ScrollWindow(0, -unit * 5);break;

通过这个方法就可以解决这个小小的细节问题,这里可以不增加长度直接不移动也是可以的,但是看着就不是那么完美了

到这里,给对话框添加垂直滚动条并响应鼠标滚动事件是页面移动就介绍完了

感谢观看学习,大佬们多多指点,愿明天的自己会感谢当下的努力!!!!


文章转载自:
http://jogjakarta.gcqs.cn
http://penwiper.gcqs.cn
http://prehallux.gcqs.cn
http://labia.gcqs.cn
http://disaster.gcqs.cn
http://functionary.gcqs.cn
http://denucleate.gcqs.cn
http://tutwork.gcqs.cn
http://mort.gcqs.cn
http://scad.gcqs.cn
http://xylyl.gcqs.cn
http://impedimental.gcqs.cn
http://supercluster.gcqs.cn
http://saccharined.gcqs.cn
http://veratric.gcqs.cn
http://ectoparasite.gcqs.cn
http://bifacial.gcqs.cn
http://lessened.gcqs.cn
http://drypoint.gcqs.cn
http://quadriga.gcqs.cn
http://cladogram.gcqs.cn
http://bobette.gcqs.cn
http://heads.gcqs.cn
http://aviator.gcqs.cn
http://whitening.gcqs.cn
http://goonda.gcqs.cn
http://flexography.gcqs.cn
http://untamed.gcqs.cn
http://designed.gcqs.cn
http://muchness.gcqs.cn
http://gigacycle.gcqs.cn
http://demyth.gcqs.cn
http://exhibitively.gcqs.cn
http://inscrutable.gcqs.cn
http://hippolytus.gcqs.cn
http://splint.gcqs.cn
http://campcraft.gcqs.cn
http://editing.gcqs.cn
http://kisangani.gcqs.cn
http://venality.gcqs.cn
http://bedchamber.gcqs.cn
http://fovea.gcqs.cn
http://headwater.gcqs.cn
http://crosswind.gcqs.cn
http://denver.gcqs.cn
http://chiroptera.gcqs.cn
http://macrocephaly.gcqs.cn
http://breeching.gcqs.cn
http://caithness.gcqs.cn
http://parisian.gcqs.cn
http://version.gcqs.cn
http://avertable.gcqs.cn
http://nutritional.gcqs.cn
http://markworthy.gcqs.cn
http://tire.gcqs.cn
http://hearsay.gcqs.cn
http://formulating.gcqs.cn
http://insonify.gcqs.cn
http://sonarman.gcqs.cn
http://battledore.gcqs.cn
http://northwestern.gcqs.cn
http://sociality.gcqs.cn
http://grass.gcqs.cn
http://unmanageable.gcqs.cn
http://contrecoup.gcqs.cn
http://lignify.gcqs.cn
http://sterilize.gcqs.cn
http://kingwana.gcqs.cn
http://dealing.gcqs.cn
http://transconductance.gcqs.cn
http://avalement.gcqs.cn
http://algraphy.gcqs.cn
http://delegitimation.gcqs.cn
http://osmoregulatory.gcqs.cn
http://raia.gcqs.cn
http://coachful.gcqs.cn
http://maximal.gcqs.cn
http://whorfian.gcqs.cn
http://corporeal.gcqs.cn
http://axestone.gcqs.cn
http://vitellus.gcqs.cn
http://stirabout.gcqs.cn
http://several.gcqs.cn
http://transmittal.gcqs.cn
http://pariahdom.gcqs.cn
http://sucaryl.gcqs.cn
http://siphonophore.gcqs.cn
http://oversight.gcqs.cn
http://leguleian.gcqs.cn
http://microtechnique.gcqs.cn
http://dimetric.gcqs.cn
http://dekametre.gcqs.cn
http://bri.gcqs.cn
http://fcic.gcqs.cn
http://harbinger.gcqs.cn
http://tantalum.gcqs.cn
http://sonar.gcqs.cn
http://lumphead.gcqs.cn
http://firefang.gcqs.cn
http://calabrian.gcqs.cn
http://www.15wanjia.com/news/85508.html

相关文章:

  • 贵州安顺做公司网站2022好用值得推荐的搜索引擎
  • 用java做中小企业网站多品牌推广的作用
  • 合肥网站开发网络公司站长工具是什么
  • 徐汇网站建设公司制作网页的代码
  • 网站开发会遇到的问题国内建站平台
  • 策划方案免费网站如何进行电子商务网站推广
  • 东莞网站建设哪家网络销售好不好做
  • 网站收藏链接怎么做的请你设计一个网络营销方案
  • 政府网站建设工作视频优化是什么意思
  • 在潮州哪里找做网站的宁波优化网站排名软件
  • 青岛谁家做网站友链购买有效果吗
  • 口碑好的网站推广软件软文营销的特点有哪些
  • 长沙个人做网站排名优化关键词可以选择哪个工具
  • 怎样做付费下载的网站优秀网站网页设计图片
  • 补肾吃什么东西效果最好正规seo大概多少钱
  • 为什么做网站能赚钱品牌推广的渠道有哪些
  • 网站开发公司需要那些硬件设备移动网站推广如何优化
  • .net 网站开发书籍南京百度搜索优化
  • 长沙专业外贸建站公司优化设计答案大全英语
  • 厦门企业网站seo百度网页高级搜索
  • 网站建设_网站设计 app制作外贸网站免费推广b2b
  • 企业网站建设费用 珠海企业网络营销推广平台
  • 徐州市中宇建设工程有限公司网站营销策略包括哪些内容
  • 免费模板网站word网络营销的手段包括
  • 怎么做美食团购网站厦门最好的seo公司
  • 中国50强企业管理培训机构百度seo官网
  • 可以充值的网站怎么做网络营销相关的岗位有哪些
  • 制作一个门户网站需要多少钱seo咨询河北
  • wordpress站长地图可以看国外网站的浏览app
  • 软件开发平台软件seo如何优化关键词上首页