如何用一个按钮开始和停止循环 先按下一个按钮,这时开始循环,然后再次按下这个按钮,就停止循环。应该怎么做?必须得用多线程吗??请指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不需要,只要在这个循环里面加入消息循环就可以了getmessage(.....)translatemessage(.........);dispatchmessage(.........); //在循环中加入消息处理即可//主要代码如下BOOL bRet;while ( (bRet = GetMessage(&msg, NULL, 0, 0)) != 0){ if (bRet == -1) { //处理出错。 } TranslateMessage(&msg); DispatchMessage(&msg);} 这样为什么不行现在CXXXXXView类的头文件中定义了#define WM_GRAB (WM_USER+100)以及afx_msg void OnGrab();源文件中ON_MESSAGE(WM_GRAB, OnGrab)//消息函数void CXXXXXView::OnGrab() { // TODO: Add your command handler code here // 做一些处理}我就想让这个按钮按下后就开始循环,然后再按下就停止,代码如下,IsStop是个全局变量初始化为FALSEvoid CXXXXXView::OnGrabsingle() { // TODO: Add your command handler code here if (IsStop==FALSE) { IsStop=TRUE; } else { IsStop=FALSE; } while (IsStop) { SendMessage(WM_GRAB); }}按下按钮没问题,可是想停止就不行了,怎么回事。 如果你不在乎时间,可以用一个1ms的TIMER。 你循环体 在 OnGrabsingle() ,阻塞了主线程。 能帮我给出正确的解吗就用BOOL bRet;while ( (bRet = GetMessage(&msg, NULL, 0, 0)) != 0){ if (bRet == -1) { //处理出错。 } TranslateMessage(&msg); DispatchMessage(&msg);}这种方法,能具体点不 C++中关于vector的问题 VC控件问题,帮帮我。~~ 如何获取Windows Media Player的播放状态? 哪里有有关于activeX编写的电子书下载啊 有谁知道c:\RECYCLER这个目录? 怎样找回对话框的 控件面板啊,给我关闭了,竟然找不回来!! 文件夹怎么加密,网络文件夹也要适用。有没有方法? 到底VC要学到什么水平才可以找到工作? 我在写一个win32程序,我想调用一个文件选择对话框。 菜鸟送分,丢人问题。 序列化一个列表 如何分割窗口
getmessage(.....)
translatemessage(.........);
dispatchmessage(.........);
//主要代码如下BOOL bRet;
while ( (bRet = GetMessage(&msg, NULL, 0, 0)) != 0)
{
if (bRet == -1)
{
//处理出错。
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
void CXXXXXView::OnGrab()
{
// TODO: Add your command handler code here
// 做一些处理
}我就想让这个按钮按下后就开始循环,然后再按下就停止,代码如下,IsStop是个全局变量初始化为FALSE
void CXXXXXView::OnGrabsingle()
{
// TODO: Add your command handler code here
if (IsStop==FALSE)
{
IsStop=TRUE;
}
else
{
IsStop=FALSE;
}
while (IsStop)
{
SendMessage(WM_GRAB);
}
}
按下按钮没问题,可是想停止就不行了,怎么回事。
BOOL bRet;
while ( (bRet = GetMessage(&msg, NULL, 0, 0)) != 0)
{
if (bRet == -1)
{
//处理出错。
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
这种方法,能具体点不