我编了一个基于对话框的延时程序:
点按钮:m_1=0;
延时2s后,m_1=1;
第一次点按钮时正常运行实现上述流程,但再次点按钮时,m_1仍然为1,并没有变为0
这是怎么回事啊??
void CMy555Dlg::OnButton1()
{
// TODO: Add your control notification handler code here
m_1=0;
UpdateData(0);
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;// 获得计数器的时钟频率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;// 获得初始值
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//获得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒
}while(dfTim<2);
m_1=1;
UpdateData(0);
}
解决方案 »
- MFC中画游标尺的游标
- 关于动态创建的树控件,它的单击、双击事件怎么添加啊?
- 关于导出类DLL问题,在线等待。。。
- 一个有深度的问题:VC如何编写程序操作另一个程序的界面控件
- hook中,有没有办法能判断2个键同时按下的?比如a和s同时按下
- 操作上的一些小问题
- 如果 Mackz(在相互) 在的话一定请进,因为留言无法保存故另开一贴。
- 请问如何使用 VCM 压缩视频流?我是使用 VFW 来捕获视频数据流的。
- CFileDialog过滤文件类型参数如何设置?求好心人解答
- 用VC写一个程序,这个程序可以生成其他的EXE文件,是不是能实现?
- OpenGL窗体中如何实现屏幕截图
- 请问有什么简单方法判断该套接字已经连接
{
// TODO: Add your control notification handler code here
m_1=0;
UpdateData(0);
LARGE_INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
dfFreq = (double)litmp.QuadPart;// 获得计数器的时钟频率
QueryPerformanceCounter(&litmp);
QPart1 = litmp.QuadPart;// 获得初始值
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//获得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒
}while(dfTim <2);
m_1=1;?????
UpdateData(0);
}
m_1是编辑框的变量
因为我在void CMy555Dlg::OnButton1() 中有:
m_1=0;
UpdateData(0);
所以m_1应该先变为0
程序最后有:
m_1=1;
UpdateData(0);
m_1再变为1啊
m_1=0;
延时2s后,m_1=1; 所以看到的是1,而不是0