OnVScroll的通常处理

void CDialogLAMP::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	// TODO:  在此添加消息处理程序代码和/或调用默认值
	SCROLLINFO scrollinfo;

	GetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);

	switch (nSBCode)

	{

	case SB_BOTTOM:

		ScrollWindow(0, (scrollinfo.nPos - scrollinfo.nMax) * 10);

		scrollinfo.nPos = scrollinfo.nMax;

		SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);

		break;

	case SB_TOP:

		ScrollWindow(0, (scrollinfo.nPos - scrollinfo.nMin) * 10);

		scrollinfo.nPos = scrollinfo.nMin;

		SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);

		break;

	case SB_LINEUP:

		scrollinfo.nPos -= 1;

		if (scrollinfo.nPos < scrollinfo.nMin)

		{

			scrollinfo.nPos = scrollinfo.nMin;

			break;

		}

		SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);

		ScrollWindow(0, 10);

		break;

	case SB_LINEDOWN:

		scrollinfo.nPos += 1;

		if (scrollinfo.nPos > scrollinfo.nMax)

		{

			scrollinfo.nPos = scrollinfo.nMax;

			break;

		}

		SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);

		ScrollWindow(0, -10);

		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, 10 * 5);

		break;

	case SB_PAGEDOWN:

		scrollinfo.nPos += 5;

		if (scrollinfo.nPos > scrollinfo.nMax)

		{

			scrollinfo.nPos = scrollinfo.nMax;

			break;

		}

		SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);

		ScrollWindow(0, -10 * 5);

		break;

	case SB_ENDSCROLL:

		// MessageBox("SB_ENDSCROLL"); 

		break;

	case SB_THUMBPOSITION:

		// ScrollWindow(0,(scrollinfo.nPos-nPos)*10); 

		// scrollinfo.nPos = nPos; 

		// SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); 

		break;

	case SB_THUMBTRACK:

		ScrollWindow(0, (scrollinfo.nPos - nPos) * 10);

		scrollinfo.nPos = nPos;

		SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);

		break;

	}

	CDialogEx::OnVScroll(nSBCode, nPos, pScrollBar);
}
时间: 2024-10-13 11:48:26

OnVScroll的通常处理的相关文章

C++入门

  C++入门必看,提升必看 Visual C++MFC入门教程 目录 +-- 第一章 VC入门|------ 1.1 如何学好VC|------ 1.2 理解Windows消息机制|------ 1.3 利用Visual C++/MFC开发Windows程序的优势|------ 1.4 利用MFC进行开发的通用方法介绍|------ 1.5 MFC中常用类,宏,函数介绍+-- 第二章 图形输出|------ 2.1 和GUI有关的各种对象|------ 2.2 在窗口中输出文字|------

静态文本框字体,颜色。网络通信软件分析。

设置静态文本框控件的背景色,文本框中字体.颜色: HBRUSH CUDPDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if (pWnd->GetDlgCtrlID()==IDC_STATIC_TITLE) { //设置绘图dc的背

VC常用小知识

(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现.AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化. (2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名.Example:TCHARexeFullPath[MAX_PATH] // MAX_PATH在API中定义了吧,好象是128G

积累的VC编程小技巧之滚动条

1.设置滚动条的滚动大小 创建一个基于CScrollview的SDI Project(在第6步中选CScrollview) 若你已创建了,这步可以省略. 然后: 改为如 void CTestView::OnInitialUpdate() { CScrollView::OnInitialUpdate(); CSize sizeTotal; // TODO: calculate the total size of this view sizeTotal.cx = 1024;  //改这两个 size

VC对话框实现垂直滚动效果

1.修改滚动的范围,设置nMax的值,此处设置为3倍窗口高度. CRect rc; GetClientRect(&rc); SCROLLINFO si = {sizeof(SCROLLINFO)}; si.fMask = SIF_PAGE | SIF_POS | SIF_RANGE; si.nPos = si.nMin = 1; si.nMax = rc.Height() * 3; si.nPage = rc.Height(); SetScrollInfo(SB_VERT, &si, FA

MFC音乐播放器

一.继承CButton 实现按钮自绘 1.ON_WM_SETCURSOR() 改变指针 BOOL C2PicBtn::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message){ ::SetCursor(LoadCursor(NULL, IDC_HAND)); return true;//CButton::OnSetCursor(pWnd, nHitTest, message);} 2.绘制bitmap指定颜色透明 TransparentBlt(dc

转载——用Mixer API函数调节控制面板的音频设置

关键词:Mixer函数,控制面板,音频设备调节 如果你用过windows的音频设备,比如播放音乐或者录音,聊天,调节麦克或者声音的大小,以及设置静音,都可以通过控制面板中的音频设置面板来调节,你对于下面的两个设置面板肯定不陌生. 播放时调节音量大小和左右声道的控制板,还可以通过它将某个设备设置为静音. 图1 另一个就是录音时控制面板,在这里我们可以选择声音输入设备,以及调节录音时左右声道音量大小 图2 这两个控制板是windows提供给我们的,这两个控制板是让windows用户在播放声音或者录音

MFC编程入门之二十六(常用控件:滚动条控件ScrollBar)

回顾上一节,讲的是组合框控件Combo Box的使用.本节详解滚动条控件Scroll Bar的相关内容. 滚动条控件简介 滚动条大家也很熟悉了,Windows窗口中很多都有滚动条.前面讲的列表框和组合框设置了相应属性后,如果列表项显示不下也会出现滚动条.滚动条分为水平滚动条(Horizontal Scroll Bar)和垂直滚动条(Vertical Scroll Bar)两种.滚动条中有一个滚动块,用于标识滚动条当前滚动的位置.我们可以拖动滚动条,也可以用鼠标点击滚动条某一位置使滚动块移动. 从

WinCE下带编辑与下拉功能的ListCtrl

CListCtrl带编辑功能与下拉功能的本质即在列表中嵌入CEdit和CComboBox控件,其具体代码如下所示://InPlaceEdit.h#if !defined(AFX_INPLACEEDIT_H__175AEDFF_731E_4721_8399_DE406A465861__INCLUDED_)#define AFX_INPLACEEDIT_H__175AEDFF_731E_4721_8399_DE406A465861__INCLUDED_ #if _MSC_VER > 1000#pra