MBR预处理,超细格栅前需要设置粗格栅及进水泵房吗

本节引言:
本节带来的是Android基本UI控件中的第十个:ScrollView(滚动条),或者我们应该叫他
竖直滚动条,对应的另外一个水平方向上的滚动条:HorizontalScrollView,先来一发官方文档
的链接:,我们可以看到类的结构如下:
嘿嘿,原来是一个FrameLayout的容器,不过在他的基础上添加了滚动,允许显示的比实际多的内容!
另外,只能够往里面放置一个子元素,可以是单一的组件,又或者一个布局包裹着的复杂的层次结构!
一般对于可能显示不完的情况,我们可以直接在布局的外层套上一个:
ScrollView或者HorizontalScrollView!就这么简单~!
可能遇到的一些需求
好的,就不一个个扣文档了,直接说实际开发中可能会遇到的一些需求吧:
另外有一个很典型的问题就是:ScrollView和ListView的嵌套问题,这个放到ListView那一章节
1.滚动到底部:
我们可以直接利用ScrollView给我们提供的:fullScroll()方法:
scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部
scrollView.fullScroll(ScrollView.FOCUS_UP);滚动到顶部
另外用这玩意的时候要小心异步的玩意,就是addView后,有可能还没有显示完,
如果这个时候直接调用该方法的话,可能会无效,这就需要自己写handler来更新了~
代码示例:
实现代码:
布局比较简单,就不贴了,直接贴MainActivity
MainActivity.java
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btn_
private Button btn_
private ScrollView scrollV
private TextView txt_
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bindViews();
private void bindViews() {
btn_down = (Button) findViewById(R.id.btn_down);
btn_up = (Button) findViewById(R.id.btn_up);
scrollView = (ScrollView) findViewById(R.id.scrollView);
txt_show = (TextView) findViewById(R.id.txt_show);
btn_down.setOnClickListener(this);
btn_up.setOnClickListener(this);
StringBuilder sb = new StringBuilder();
for (int i = 1; i &= 100; i++) {
sb.append("呵呵 * " + i + "\n");
txt_show.setText(sb.toString());
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_down:
scrollView.fullScroll(ScrollView.FOCUS_DOWN);
case R.id.btn_up:
scrollView.fullScroll(ScrollView.FOCUS_UP);
当然除了这种方法还,你还可以使用另一种复杂一点的写法:
public static void scrollToBottom(final View scroll, final View inner) {
Handler mHandler = new Handler();
mHandler.post(new Runnable() {
public void run() {
if (scroll == null || inner == null) {
int offset = inner.getMeasuredHeight() - scroll.getHeight();
if (offset & 0) {
offset = 0;
scroll.scrollTo(0, offset);
scrollTo()参数依次为x,y滚到对应的x,y位置!
2.设置滚动的滑块图片
这个更加简单:
垂直方向滑块:android:scrollbarThumbVertical
水平方向滑块:android:scrollbarThumbHorizontal
3.隐藏滑块
好吧,这个好像没什么卵用:
方法有两种:
1.android:scrollbars="none"
2.Java代码设置:scrollview.setVerticalScrollBarEnabled(false);
4.设置滚动速度:
这个并没有给我们提供可以直接设置的方法,我们需要自己继承ScrollView,然后重写一个
public void fling (int velocityY)的方法:
public void fling(int velocityY) {
super.fling(velocityY / 2);
//速度变为原来的一半
本节小结:
好的,能想到的ScrollView的东西就这么多,因为平时这个用得并不多,一般直接套在外面而已,
另外,问题最多的一般是ScrollView和ListView的嵌套问题~如果有什么补充欢迎提出,谢谢~
2.4.1 ScrollView(滚动条)
记住登录状态
重复输入密码欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!您的位置: >
> DIV滚动条设置 滚动条显示与滚动条隐藏
对设置滚动条,设置其横向滚动条和纵向滚动条样式。所需为overflow-y和overflow-x来设置对象右侧和底部滚动条效果。同时也可以使用CSS样式设置框架的滚动条隐藏,接下来为大家介绍。
一、CSS基础认识
overflow-y: 总是显示纵向滚动条
overflow-y:visible : 不剪切内容也不添加纵向滚动条
了解:overflow-y手册/shouce/c_overflowy.shtml
overflow-x: 总是显示横向滚动条
overflow-x:visible : 不剪切内容也不添加横向滚动条
了解:overflow-x手册/shouce/c_overflowx.shtml
二、div设置滚动条实例
DIVCSS5通过对第一个DIV对象设置、、样式,并在DIV盒子里添加演示文字内容,第二个盒子设置相同的CSS样式,盒子文字内容相同,并设置横向和纵向滚动条,观察效果。
第一个盒子为&divcs5-a&,第二个DIV盒子样式选择器命名为&divcss5-b&。
1、具体完整如下:
&!DOCTYPE&html&&&&charset=&gb2312&&&div滚动条&在线演示&&&.divcss5-a,.divcss5-b{&:150&:100&;&:1px&solid&#F00}&.divcss5-b{&:10overflow-y:&overflow-x:}&/*&说明:设置第二个盒子与第一个盒子间距为10px,并设置了横纵滚动条样式&*/&&&&&class=&divcss5-a&DIVCSS5测试内容,欢迎来到DIVCSS5学习DIV+CSS技术。大家可以通过DIVCSS5主站上的所有免费CSS教程足可学会DIV&CSS技术&-&如果需要深入系统学习、较短时间达到理想学习效果可参加DIV+CSS培训班学习。&&&class=&divcss5-b&DIVCSS5测试内容,欢迎来到DIVCSS5学习DIV+CSS技术。大家可以通过DIVCSS5主站上的所有免费CSS教程足可学会DIV&CSS技术&-&如果需要深入系统学习、较短时间达到理想学习效果可参加培训班学习。&&&
为了观察效果我们对两个DIV盒子都设置基础相同的CSS样式和相同的文字内容。对&.divcss5-b&设置了X和y(横向和纵向的滚动条样式。)
2、观察DIV+CSS滚动条实例效果截图
CSS DIV滚动条样式实例效果截图
说明:第一个盒子&.divcss5-a&内容过多而溢出了DIV盒子,第二个盒子设置了滚动条样式,所以没有溢出,纵向右侧(Y)出现了可下拉上拉滚动条样式,横向底部(X)出现滚动条效果但不可左右拉动,这是因为文字内容不能撑开DIV宽度,如果是大于DIV设置宽度的图片这样横向底部(X)就会出现滚动条效果。
3、在线演示:
4、实例打包下载
5、小结,如何隐藏滚动条
DIV默认是没有滚动条的,如果加了滚动条样式,去掉后滚动条自然就会消失。如果是框架iframe出现的滚动条,如果要想X横向隐藏滚动条,只需要设置overflow-x:visible或overflow-x:hidden;如果想iframe出现Y纵向滚动条隐藏可以设置CSS样式overflow-y:visible或overflow-y:hidden即可隐藏滚动条。
三、以上案例遇到知识扩展
4、如需转载,请注明文章出处和来源网址:我要分享到:上一篇: 下一篇: 必备CSS教程 Essential CSS Tutorials• • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • ()• • ()• ()• • • • • • • • • • • • • • • • 必备HTML基础教程 Essential HTML Tutorials •
• () • () • () •
• () •
• () •
• 如对文章有任何疑问请提交到,或有任何网页制作CSS问题立即到发贴求解 或 直接DIVCSS5网页顶部搜索遇到DIVCSS疑问。文章修订日期: 14:38
原创:本文 DIVCSS5版权所有。最新文章NEWS• • • • • • • • • • CSS EFFECTS相关文章RELATED• • • • • • • • • • 热点文章HOT
学习与资源分享平台& VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)
VS2010/MFC编程入门之二十六(常用控件:滚动条控件Scroll Bar)
&&&&&& 回顾上一节,鸡啄米讲的是的使用。本节详解滚动条控件Scroll Bar的相关内容。&&&&&& 滚动条控件简介&&&&&& 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条。前面讲的和组合框设置了相应属性后,如果列表项显示不下也会出现滚动条。滚动条分为水平滚动条(Horizontal Scroll Bar)和垂直滚动条(Vertical Scroll Bar)两种。滚动条中有一个滚动块,用于标识滚动条当前滚动的位置。我们可以拖动滚动块,也可以用鼠标点击滚动条某一位置使滚动块移动。&&&&&& 从滚动条的创建形式来分,有标准滚动条和滚动条控件两种。像列表框和组合框设置了WS_HSCROLL 或WS_VSCROLL风格以后出现的滚动条,不是一个独立的窗口,而是这些窗口的一部分,这就是标准滚动条。而滚动条控件是一个独立的窗口,它可以获得焦点,响应某些操作。&&&&&& 滚动条控件的创建&&&&&& 也为滚动条控件的操作提供了类,即为CScrollBar类。&&&&&& 滚动条控件的创建依然有两种方式,一种是直接在Toolbox中将滚动条控件拖入对话框模板,然后使用,另一种就是用CScrollBar类的Create成员函数动态创建。这两种方式适用于不同的场合。&&&&&& CScrollBar类的成员函数Create的函数原型如下:virtual BOOL Create(&& DWORD dwStyle,&& const RECT& rect,&& CWnd* pParentWnd,&& UINT nID );&&&&&& 此函数与其他控件类的Create函数原型基本相同。参数dwStyle指定滚动条控件的风格,rect指定滚动条控件的位置和尺寸,pParentWnd为指向滚动条控件父窗口的指针,nID指定滚动条控件的ID。下面鸡啄米简单介绍几个主要的滚动条控件风格,更加具体的可以查阅MSDN。&&&&&& SBS_HORZ:指定滚动条为水平滚动条。如果没有指定SBS_BOTTOMALIGN或SBS_TOPALIGN风格,则滚动条的高度、宽度和位置由Create函数的rect参数给出。&&&&&&&SBS_VERT:指定滚动条为垂直滚动条。如果没有指定SBS_RIGHTALIGN或SBS_LEFTALIGN风格,则滚动条的高度、宽度和位置由Create函数的rect参数给出。&&&&&&&SBS_TOPALIGN:与SBS_HORZ配合使用。滚动条的上边缘与Create函数的rect参数指定矩形的上边缘对齐。滚动条高度为系统滚动条的默认高度。&&&&&&&SBS_BOTTOMALIGN:与SBS_HORZ配合使用。滚动条的下边缘与Create函数的rect参数指定矩形的下边缘对齐。滚动条高度为系统滚动条的默认高度。&&&&&& SBS_LEFTALIGN:与SBS_VERT配合使用。滚动条的左边缘与Create函数的rect参数指定矩形的左边缘对齐。滚动条宽度为系统滚动条的默认宽度。&&&&&& SBS_RIGHTALIGN:与SBS_VERT配合使用。滚动条的右边缘与Create函数的rect参数指定矩形的右边缘对齐。滚动条宽度为系统滚动条的默认宽度。&&&&&& dwStyle参数可以是以上风格中某几个的组合,另外一般也会用到WS_CHILD、WS_VISIBLE风格。例如,创建一个水平滚动条控件,dwStyle参数应该为WS_CHILD|WS_VISIBLE|SBS_HORZ,创建垂直滚动条控件时dwStyle参数应该为WS_CHILD|WS_VISIBLE|SBS_VERT。&&&&&& CScrollBar类的主要成员函数&&&&&& BOOL GetScrollInfo(LPSCROLLINFO lpScrollInfo, UINT nMask = SIF_ALL);&&&&&& 获取的滚动条的参数信息,该信息为SCROLLINFO结构体的形式。参数lpScrollInfo为指向SCROLLINFO结构体变量的指针。SCROLLINFO结构体的定义如下:
typedef&struct&tagSCROLLINFO&{& &&
&&&&UINT&cbS&&&&&&&&&&&
&&&&UINT&fM&&&&&&&&&&&&
&&&&int&&nM&&&&&&&&&&&&&
&&&&int&&nM&&&&&&&&&&&&&
&&&&UINT&nP&&&&&&&&&&&&
&&&&int&&nP&&&&&&&&&&&&&
&&&&int&&nTrackP&&&&&&&&
}&&&SCROLLINFO,&*LPSCROLLINFO;& &&
typedef&SCROLLINFO&CONST&*LPCSCROLLINFO;&&&&&&&& 参数nMask 的含义与SCROLLINFO 结构体中的fMask一样。该函数在获取信息成功则返回TRUE,否则返回FALSE。&&&&&& BOOL SetScrollInfo(LPSCROLLINFO lpScrollInfo, BOOL bRedraw = TRUE);&&&&&& 用于设置滚动条的各种参数信息。参数lpScrollInfo为指向SCROLLINFO结构体变量的指针,参数bRedraw表示是否需要重绘滚动条,如果为TRUE,则重绘。该函数操作成功则返回TRUE,否则返回FALSE。&&&&&& int GetScrollPos( )&&&&&& 获取滚动块的当前位置。如果失败则返回0。&&&&&& int SetScrollPos(int nPos, BOOL bRedraw = TRUE);&&&&&& 将滚动块移动到指定位置。参数nPos指定了滚动块的新位置,参数bRedraw 表示是否需要重绘滚动条,如果为TRUE,则重绘。函数返回滚动框原来的位置,若操作失败则返回0。&&&&&&&void GetScrollRange(LPINT lpMinPos, LPINT lpMaxPos)&&&&&&&获取滚动条的滚动范围。参数lpMinPos指向滚动条滚动范围的最小值,参数lpMaxPos指向滚动条滚动范围的最大值。&&&&&& void SetScrollRange(int nMinPos, int nMaxPos, BOOL bRedraw = TRUE);&&&&&& 用于指定滚动条的滚动范围。参数nMinPos 和nMaxPos 分别指定了滚动范围的最小值和最大值,两者的差不得超过32767。当两者都为0 时,滚动条将被隐藏。参数bRedraw 表示是否需要重绘滚动条,如果为TRUE,则重绘。&&&&&& OnHScroll()与OnVScroll()函数&&&&&& 无论是标准滚动条,还是滚动条控件,滚动条的通知消息都是用WM_HSCROLL 和WM_VSCROLL消息发送出去的。对这两个消息的默认处理函数是CWnd::OnHScroll和CWnd::OnVScroll,一般需要在派生类中对这两个函数进行重载,以实现滚动功能。也就是说,假设在一个对话框中放入了一个水平滚动条,我们可以在对话框类中重载OnHScroll函数,并在OnHScroll函数中实现滚动功能。&&&&&& 这两个函数的声明如下:&&&&&& afx_msg void OnHScroll(UINT nSBCode,UINT nPos,CScrollBar* pScrollBar);&&&&&& afx_msg void OnVScroll(UINT nSBCode,UINT nPos,CScrollBar* pScrollBar);&&&&&& 参数nSBCode是通知消息码,主要通知码及含义的介绍下面已列出。nPos 是滚动框的位置,只有在nSBCode为SB_THUMBPOSITION或SB_THUMBTRACK时,该参数才有意义。如果通知消息是滚动条控件发来的,那么pScrollBar 是指向该控件的指针,如果是标准滚动条发来的,则pScrollBar 为NULL。&&&&&& SB_BOTTOM/SB_RIGHT:滚动到底端(右端)&&&&&& SB_TOP/SB_LEFT:滚动到顶端(左端)&&&&&& SB_LINEDOWN/SB_LINERIGHT:向下(向右)滚动一行(列)&&&&&& SB_LINEUP/SB_LINELEFT:向上(向左)滚动一行(列)&&&&&& SB_PAGEDOWN/SB_PAGERIGHT:向下(向右)滚动一页&&&&&& SB_PAGEUP/SB_PAGELEFT:向上(向左)滚动一页&&&&&& SB_THUMBPOSITION:滚动到指定位置&&&&&&&SB_THUMBTRACK:滚动框被拖动。可利用该消息来跟踪对滚动框的拖动&&&&&& SB_ENDSCROLL:滚动结束&&&&&& CScrollBar类应用实例&&&&&& 讲完了基础知识,鸡啄米还是给大家一个简单的实例。例子非常简单,就是在一个对话框中加入一个水平滚动条控件和一个控件,无论滚动条控件是在滚动还是静止,编辑框中都显示滚动块的当前位置。以下是具体开发步骤:&&&&&& 1. 创建一个基于对话框的MFC工程,名称设置为&Example26&。&&&&&& 2. 在自动生成的对话框模板IDD_EXAMPLE26_DIALOG中,删除&TODO: Place dialog controls here.&静态文本控件、&OK&按钮和&Cancel&按钮。添加一个Horizontal Scroll Bar控件,ID设置为IDC_HORI_SCROLLBAR。再添加一个静态文本控件和一个编辑框,静态文本控件的Caption属性设为&滚动块当前位置:&,编辑框的ID设为IDC_HSCROLL_EDIT,Read Only属性设为True。此时的对话框模板如下图:&&&&& &&&&&& 3. 为滚动条IDC_HORI_SCROLLBAR添加CScrollBar类型的控件变量m_horiScrollbar。&&&&&& 4. 在对话框初始化时,我们需要设置滚动条的滚动范围和初始位置,并在编辑框中显示初始位置,那么需要修改CExample26Dlg::OnInitDialog()函数为:
BOOL&CExample26Dlg::OnInitDialog() &&
&&&&CDialogEx::OnInitDialog(); &&
&&&&ASSERT((IDM_ABOUTBOX&&&0xFFF0)&==&IDM_ABOUTBOX); &&
&&&&ASSERT(IDM_ABOUTBOX&&&0xF000); &&
&&&&CMenu*&pSysMenu&=&GetSystemMenu(FALSE); &&
&&&&if&(pSysMenu&!=&NULL) &&
&&&&&&&&BOOL&bNameV &&
&&&&&&&&CString&strAboutM &&
&&&&&&&&bNameValid&=&strAboutMenu.LoadString(IDS_ABOUTBOX); &&
&&&&&&&&ASSERT(bNameValid); &&
&&&&&&&&if&(!strAboutMenu.IsEmpty()) &&
&&&&&&&&{ &&
&&&&&&&&&&&&pSysMenu-&AppendMenu(MF_SEPARATOR); &&
&&&&&&&&&&&&pSysMenu-&AppendMenu(MF_STRING,&IDM_ABOUTBOX,&strAboutMenu); &&
&&&&&&&&} &&
&&&&SetIcon(m_hIcon,&TRUE);&&&&&&&&&&&
&&&&SetIcon(m_hIcon,&FALSE);&&&&&&&&&&
&&&&m_horiScrollbar.SetScrollRange(1,&100); &&
&&&&m_horiScrollbar.SetScrollPos(20); &&
&&&&SetDlgItemInt(IDC_HSCROLL_EDIT,&20); &&
&&&&return&TRUE;&&&&
}&&&&&&&& 5. 现在滚动条还不能正常滚动,并且编辑框中数字也不随滚动改变。根据上面所讲,我们可以重载CExample26Dlg类的OnHScroll函数。具体操作为,在CExample26Dlg类的属性页面的工具栏上点&Messages&按钮,找到WM_HSCROLL消息,添加响应函数就可以了。OnHScroll函数重写后如下:
void&CExample26Dlg::OnHScroll(UINT&nSBCode,&UINT&nPos,&CScrollBar*&pScrollBar)&&
&&&&int&pos&=&m_horiScrollbar.GetScrollPos();&&&&&&
&&&&switch&(nSBCode)&&&
&&&&&&&&&&
&&&&&&&&case&SB_LINELEFT:&&&
&&&&&&&&&&&&pos&-=&1;&&&
&&&&&&&&&&&&break;&&&
&&&&&&&&&&
&&&&&&&&case&SB_LINERIGHT:&&&
&&&&&&&&&&&&pos&&+=&1;&&&
&&&&&&&&&&&&break;&&&
&&&&&&&&&&
&&&&&&&&case&SB_PAGELEFT:&&&
&&&&&&&&&&&&pos&-=&10;&&&
&&&&&&&&&&&&break;&&&
&&&&&&&&&&
&&&&&&&&case&SB_PAGERIGHT:&&&
&&&&&&&&&&&&pos&&+=&10;&&&
&&&&&&&&&&&&break;&&&
&&&&&&&&&&
&&&&&&&&case&SB_LEFT:&&&
&&&&&&&&&&&&pos&=&1;&&&
&&&&&&&&&&&&break;&&&
&&&&&&&&&&
&&&&&&&&case&SB_RIGHT:&&&
&&&&&&&&&&&&pos&=&100;&&&
&&&&&&&&&&&&break;&&&&&
&&&&&&&&&&
&&&&&&&&case&SB_THUMBPOSITION:&&&
&&&&&&&&&&&&pos&=&nP&&&
&&&&&&&&&&&&break;&&&
&&&&&&&&&&
&&&&&&&&default:&&&
&&&&&&&&&&&&SetDlgItemInt(IDC_HSCROLL_EDIT,&pos);&&
&&&&&&&&&&&&return;&&&
&&&&m_horiScrollbar.SetScrollPos(pos);&&
&&&&CDialogEx::OnHScroll(nSBCode,&nPos,&pScrollBar);&&
}&&&&&& 6. 编译运行程序,弹出结果对话框,可以自己拖动滚动块看是否能正常滚动,并且编辑框中也显示了正确的数值。效果如下:&&&&&&& 至于垂直滚动条,其实与水平滚动条类似,大家可以自己写写垂直滚动条的例子,鸡啄米就不再举例了。&&&&&&& 滚动条控件的内容就讲到这里了,比较基础,但这些是以后应用滚动条控件的必知内容。鸡啄米欢迎大家常来此学习交流,谢谢。
除非特别注明,文章均为原创
转载请标明本文地址:
作者:鸡啄米
&&( 0:49:15)&&( 23:21:17)&&( 21:47:59)&&( 0:24:18)&&( 0:15:31)&&( 22:29:38)&&( 21:26:10)&&( 22:25:46)&&( 20:30:21)&&( 21:30:18)
博主写得都是很专业性。
飘过,看到C++就烦躁
太高深了。由 鸡啄米 于
21:26:17 最后编辑
这个控件很不错啊
鸡啄米的东西很精辟啊总结的
继续支持,继续感谢鸡啄米的提供
第一部分的代码段里,第4,第5行的注释 最大、最小,是不是写反了?呵呵。鸡啄米 于
23:12:44 回复呵呵,确实是写反了,已经更正。谢谢指出问题nianhuadefo 于
11:19:58 回复添加的是水平滚动条,根据消息通知码的介绍,最后一部分的case条件那是不是写反了, 都是垂直滚动条的,不是水平滚动条的,例如滚动到最右端你写的是SB_BOTTOM,不应该是SB_RIGHT??ajie 于
21:07:57 回复nSBCode是一个UINT值,SB_BOTTOM的SB_RIGHT的值是一样的。
在这一节中,我自己将SB_PAGEDOWN和SB_PAGEUP弄反了,还查了好久错,继续努力学习鸡啄米 于
22:03:18 回复很有上进心,加油!
写的很好的东西,对于初学者真不错,从第一篇看到这了,继续学习
程序能编译过,可是拖动之后又返回原地了,而且编辑框不显示位置,怎么回事啊lijiajia0704 于
10:56:15 回复我也是这样的,你解决了吗?
向左滚动一页,,为什么pos减10呢,一页是10吗?
下面的m_horiScrollbar.SetScrollPos(pos);执行时会第二次进入此函数/////////////////////////////////////////////////////为什么会第二次进入此函呢?
鸡啄米你好,一直看您的教程,感觉您讲的简洁易懂,非常适合初学者学习,大部分这方面的书或者教程都有个问题,不考虑读者的感受,或者说是没有以由浅入深的方式教给读者知识,您的教程让我觉得非常的好,谢谢啦
这一节我发现了一个问题:重载的OnHScroll函数中,我们所添加部分代码,也就是OnHScroll函数的第8行到第31行,程序执行过程中都没有执行到,也就是说,程序开始执行时,左右拖动滚动块,不论怎么拖动,我所说的这一段代码都没有执行到。貌似每次拖动滚动快,switch语句都会执行到这一行:
// 如果拖动滚动块滚动到指定位置,则pos赋值为nPos的值
case SB_THUMBPOSITION:
而且,对于这两个分支:case SB_THUMBPOSITION:
// 下面的m_horiScrollbar.SetScrollPos(pos);执行时会第二次进入此函数,最终确定滚动块位置,并且会直接到default分支,所以在此处设置编辑框中显示数值
SetDlgItemInt(IDC_HSCROLL_EDIT, pos);
貌似执行完一个分支之后程序继续执行另一个分支,不是说的switch中执行完一个分支之后,break会跳出switch语句吗?跳出来的话就应该执行switch语句之后的下一句,而不是执行这两个分支中的另一个,希望您有空的话解答一下我的疑惑,谢谢
对话框做好之后添加的“标准滚动条”,初始化SCROLLINFOvinfo.cbSize = sizeof (SCROLLINFO) ; vinfo.fMask = SIF_RANGE | SIF_PAGE ; vinfo.nMin = 0 ; vinfo.nMax = 150 ; vinfo.nPage = 10 ; SetScrollInfo(SB_VERT,&vinfo);事件消息void DEN3CALIBRATION::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar){SCROLLINFO
GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); 滚动条窗口不动 于
9:03:24 回复switch (nSBCode)
case SB_BOTTOM: //滑块滚动到最底部
ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMax)*10);scrollinfo.nPos = scrollinfo.nMSetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
case SB_TOP: //滑块滚动到最顶部
ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMin)*10);
scrollinfo.nPos = scrollinfo.nM
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
滚动条窗口不动 于
9:04:59 回复case SB_LINEUP: //单击上箭头
scrollinfo.nPos -= 1;
if (scrollinfo.nPos&scrollinfo.nMin)
scrollinfo.nPos = scrollinfo.nM
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
ScrollWindow(0,10);
case SB_LINEDOWN: //单击下箭头
scrollinfo.nPos += 1;
if (scrollinfo.nPos&scrollinfo.nMax)
scrollinfo.nPos = scrollinfo.nM
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
ScrollWindow(0,-10);
case SB_PAGEUP: //单击滑块上方空白区域
scrollinfo.nPos -= 5;
if (scrollinfo.nPos&scrollinfo.nMin)
scrollinfo.nPos = scrollinfo.nM
滚动条窗口不动 于
9:05:38 回复ScrollWindow(0,(scrollinfo.nPos-nPos)*10);
scrollinfo.nPos = nP
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
CDialog::OnVScroll(nSBCode, nPos, pScrollBar);
} 滚动条可以滚动,但是,窗口不动?能帮忙看看啥原因吗?谢谢
第二段代码的倒数第四行default:
SetDlgItemText(IDC_HSCROLL_EDIT, pos); 为什么我编译会报错啊,error C2664: 'CWnd::SetDlgItemTextW' : cannot convert parameter 2 from 'int' to 'LPCTSTR'1&
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast。求解
楼主你好,如果是两个ScrollBar怎么做?为什么我点击下面的一个变得却是上面的,这是什么原因?Spartacus 于
15:51:14 回复还有为什么只能点击让它变化,不能拖动,如何能拖动它呢?
还有我滑动ScrollBar是为了获取一个变化扼值,比如我调整 二值化 处理图像,那么需要在每个case 下面都加上函数?有什么好的办法吗?
請問一下,要如何取得系統滾動條(系統默認的滾動條)的焦點呢?
我是18樓,補充一下:比如說我創建一個空白Frame,這Frame中沒有 然後,我在此Frame中載入圖片,因圖片過大,系統自動產生scrollbar..... 這時候我要如何控制系統產生的scrollbar?比如說取得它的hwnd,cwnd? 我試過CWnd::GetScrollBarCtrl與CView::GetScrollBarCtrl,都失敗
您好!您的教程非常简洁易懂,很适合我这样的新手学习。我现在在做一个mfc项目,需要在系统托盘菜单内添加一个滑动条,已经查了两天了还没有头绪,希望得到您的帮助。谢谢.
你好,这节里说m_horiScrollbar.SetScrollPos(pos);执行时会第二次进入此函数,那么这个函数触发的的是哪个消息码呢,是 SB_ENDSCROLL:滚动结束 吗
您好,刚刚开始学习您的教程,觉得受益匪浅,但是看到这一节的时候有个疑惑。之前在属性页那个时候我们用的是重写这个功能,但是现在用到了消息那个菜单中的重载。我想问一下重写和重载有什么区别呢?谢谢。
为何拖动滚动条后,要 点击一 下编辑框,编辑框里的数值才变化
我按照您的要求做了 但是我编译不报错 运行会程序停止运行 不知道哪里出了错?
我发现我的Example26Dlg继承的是CDialogEx, 在类的属性视图中重写方法中没有OnHScroll,我用的是visual studio 2015。
楼主,很好,继续加油。
可以问个问题吗?如果我有很多滑杆如何判断是哪个控件发出的消息??
在CExample26Dlg类的属性页面上没看到工具栏啊
在CExample26Dlg类的属性页面的工具栏在哪里啊
messa按钮在哪里a
请问,在我拖动滚动条来回移动且一直没松开鼠标的过程中,会进入OnHScroll()函数刷新pos位置值么?如果刷新,是只要不松开鼠标就固定时间刷新一次么?如果不刷新,是在松开鼠标的时候进入OnHScroll()函数刷新pos值么?请各位大神指教!
滚动条这里 在 switch (nSBCode)
// 如果向左滚动一列,则pos减1
case SB_LINELEFT:
SetDlgItemInt(IDC_HSCROLL_EDIT, pos);
在每次pos值改变加入SetDlgItemInt(IDC_HSCROLL_EDIT, pos); 可以让pos值实现动态改变
请问,如果我想弄两个独立的滑动条改怎么做?
麻烦问下我用的VS2015为啥会出现Debug Assertion Failed
完全随机文章}

我要回帖

更多关于 粗细格栅 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信