
用的是线程函数还是MFC中的线程类?
如果是函数,把一个long型值当线程参数传入(传其地址),然后在线程中对其赋值即可。
int main(int argc,char argv[])
{
long threadTime;
beginthreadex(,threadproc,&threadTime);
//wait for thread quit
//threadTime == 线程的运行时间
}
ulong threadproc(LPVOID param)
{
long plTime = (long)param;
plTime = GetCurrentTime();
return 0;
}
如果是一个类,就直接用类变量就可以了。
因为什么,因为在内核下的运行通常是进程轮询线程是否有任务,时间很短,而在用户下的运行时间通常是用户触发线程的运行,同样通常也是很快就完成,所以楼主这样求得的仅仅是进程实际运行时间,至于创建的时间可以这样求:一种情况是关闭了的,即exittime-starttime(抽象化语言,楼主应该能懂),一种情况是进程未关闭,楼主可获取当前时间再减去创建时间点即可。
用GDI或GDI+自绘,或者是贴图,给你我自己写的万年历工程吧。
把显示页放在选项卡(TabCtrl)中,以后可以在后面扩展更多工具。当然你可以把它改到一个窗口中,那样就不需要选项夹了。
整个日历是靠GDI画出来的,使用双缓冲绘制(MemDC),避免闪屏。显示时,先把要显示的76数组填充完,里面包含日的信息,最后将这些数组显示出来。填充时,需要计算日期的各类信息。计算的详情,可以查看lunarh文件中的描述。
工程中文件详情:
Calendarh和Calendarcpp
应用程序类,向导自动生成,在此类建立是,首先加载dll,然后再显示主对话框
CalendarDlgh和CalendarDlgcpp
对话框类,这是个主对话框类。
CalendarShowDlgh和CalendarShowDlgcpp
这是显示日历的类,显示在主对话框下选项夹的一个子夹中。
类中先处理要显示的日期,存放在一个数组中,然后通过DC绘制到对话框上,依赖类:CMemDC和CYearEdit,另外需要TimeConv类来获取网络时间,
MenDCh和MenDCcpp
双缓冲DC,防止闪屏
SetCalendarh和SetCalendarcpp
这是设置界面,用于日历显示的设置
stdafxh和stdafxcpp
预编译头及源文件(向导生成)
targetverh
向导生成
TimeConvh和TimeConvcpp
取网络时间
YearEdith和YearEditcpp
是CEdit派生的类,用于限定输入的,防止输入走出范围或者其它非法输入。
关于Lunardll的使用,请参照头文件中说明。
首先可以用系统给我们提供的一个定时器,即楼上所说的,用SetTimer去启动一个定时器,然后在OnTimer函数里面,使用API函数GetSystemTime获取当前时间,与你设定的值进行对比,如果符合你设定的值,则让它执行相应的功能,并用KillTimer终止定时器,如有什么不明白的,可以继续追问~~
以上就是关于如何在MFC中获取某线程的运行时间急!全部的内容,包括:如何在MFC中获取某线程的运行时间急!、mfc获取进程运行时间、如何用MFC界面显示一个日历等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)