百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

MFC定时器、进度条和滑动条

yuyutoo 2025-05-28 21:24 5 浏览 0 评论

创建和销毁定时器

MFC的CWnd类提供的成员函数SetTimer用于设置并启动定时器。第一个参数是我们设置的定时器ID,第二个参数是定时时间(单位毫秒),第三个参数是回调函数地址(如果设置为NULL,则通过WM_TIMER消息的消息响应函数处理定时事件)。

void CDemoDlg::OnBnClickedBtnStart()
{
	SetTimer(1001, 1000, NULL);
}

void CDemoDlg::OnBnClickedBtnStop()
{
	KillTimer(1001);
}
void CDemoDlg::OnTimer(UINT_PTR nIDEvent)
{
	if (nIDEvent == 1001) {
		CTime now = CTime::GetCurrentTime();

		CString str = now.Format(_T("%Y-%m-%d %H:%M:%S"));
		SetDlgItemText(IDC_STATIC_Show_Time, str);
	}

	CDialogEx::OnTimer(nIDEvent);
}

滑动条控件

用Windows的定时器实现按钮按下滑动条自动增加,到达最大值归零。

初始化:

g_dlg = this;
m_progress.SetRange(0, 100);
m_progress.SetPos(0);

设置定时器,自定义回调函数:

void CDemoDlg::OnBnClickedButnStartProgress() {
	::SetTimer(GetSafeHwnd(), 1002, 10, TimerProc);
	m_btn_start_progress.EnableWindow(FALSE);
}

设置回调函数(固定格式):

VOID CALLBACK TimerProc(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) {
	int minv, maxv;
	g_dlg->m_progress.GetRange(minv, maxv);

	int pos = g_dlg->m_progress.GetPos();
	pos++;

	if (pos > maxv) {
		pos = 0;
		::KillTimer(hwnd, 1002);
		g_dlg->m_btn_start_progress.EnableWindow(TRUE);
	}

	g_dlg->m_progress.SetPos(pos);
}

滑动条

一般和静态文本框搭配使用,用于显示

给滑动条添加拖动事件:

void CDemoDlg::OnNMCustomdrawSlider(NMHDR* pNMHDR, LRESULT* pResult)
{
	LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR);
	
	m_static_show_slider_value = m_slider.GetPos();

	UpdateData(FALSE);

	*pResult = 0;
}

相关推荐

实现分页的最简单的方式(附带源码下载)

分页是每个网站并不可少的,但是处理往往非常麻烦,虽然有很多的插件可以使用,但复杂度依然不减,今天我们来手敲一个最简单的实现方式,看够之后分页再也不是难题,而且以后用插件也懂原理了。手动擒来!文章概略:...

什么是XSS攻击,我们又该如何防范?

什么是XSS?XSS,全称为CrossSiteScripting,意思是跨站脚本攻击,为了与层叠样式表(CSS:CascadingStyleSheets...

网站wn万能命令wn.run怎么用?

wn万能命令是一个在线工具快捷跳转平台,将各种高质量的在线工具按应用站点聚合起来,让你以方便快捷好记的方式寻找和使用网页型在线工具。...

游客在三清山景区坐椅子拍照被强制收费 官方通报:已责令摄影点立即整改

大皖新闻讯7月31日,大皖新闻报道了游客称三清山景区坐下椅子拍照就被强制收费一事,引发关注。31日下午,三清山景区管理局发布情况通报称,经调查核实,视频反映情况属实,已责令该摄影点立即整改。官方发布情...

使用JavaScript如何获取网站网址

在做网站开发时,我们有时候会获取当前页面的完整路径。在网页前端如何实现呢?请在网页脚本代码段中粘贴如下代码。functiongetRootPath(){//获取当前网址,...

重磅发布!时间终于确定

]|\[sS])*"|'(?:[^\']|\[sS])*'|[^)}]+)s*)/g,l=window.testenv_reshost||window.__moon_host||"res.wx.qq...

收到一个神奇的任务,聊天工具运行不正常,原来是浏览器的问题

如何神奇呢?先来简单介绍一下背景,接下来再说一下这个现象如何神奇。出问题的是一个即时聊天工具插件,被嵌入到客户的第三方程序中。工程师说,我们自己的例子程序是没问题的,而且也不是所有的客户端都有问题。他...

微服务架构实战:商城的用户登录与账户切换设计、订单查询设计

商城的用户登录与账号切换设计在移动商城的设计中,除商品和分类查询是完全开放权限的页面外,其他涉及个人隐私的个人信息、订单查询和购物车等都必须进行权限管理。有关用户权限管理的功能,在这里根据移动设备的特...

前端进阶-每日一练(4)

本期问题:document.write和innerHTML、innerText有什么区别?jQuery中如何中断each遍历?如何查找数组中的最小值和最大值?如何做到优雅降级,渐进增强?$....

js中的正则表达式入门

什么是正则表达式呢?...

前端路由简介以及vue-router实现原理

作者:muwoo来源:https://zhuanlan.zhihu.com/p/37730038...

详解三类的友情链接不能交换

“假PR页面导出链接太多专门的友情链接页无效链接内页的链接关联性网页快照更新的速度收录的数量nofollow生成静态伪装图片链接链接工厂下拉列表或滚动js脚本转向fram...

福建推进河(湖)长制工作:当好“施工队长”建设八闽幸福河湖

]|\[sS])*"|'(?:[^\']|\[sS])*'|[^)}]+)s*)/g,l=window.testenv_reshost||window.__moon_host||"res.wx.qq...

如何愉快地使用Via浏览器

...

将 Safari 打造成 iOS 里的快速启动中心:Bookmarklet

Safari作为iOS设备上我们使用最为频繁的App之一,它除了能让我们翱翔于无边的网际之外,其实利用它本身自带的书签功能我们还可以将其打造成一个快速启动中心。在桌面环境中大多数浏览器都允许...

取消回复欢迎 发表评论: