小编mar*_*rio的帖子

如何使用"停止按钮"停止进程

我创建了一个带有两个按钮的简单窗口,第一个调用一个持续很长时间的函数,第二个调用变量"stop"的值设置为TRUE,最初设置为FALSE.

我的意图是,通过按下第一个按钮它会运行一个很长的进程,它控制每个循环的stop变量是设置为TRUE还是FALSE,如果值为TRUE,则函数应该返回,因此进程停止.

...

static BOOL stop = FALSE;   // My variable defined somewhere

...

int longProcess ()   // My function
{
    while(stop == FALSE) {
         // do something
    }
    return 0;
}

...

switch (msg)
{
    case WM_CREATE:
    {
                            ...

        Button1 = CreateWindowEx(0, 
                                         TEXT("BUTTON"),
                                         TEXT("Start"),
                                         WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                                         100, 100, 100, 20,
                                         hWnd,
                             (HMENU)BUTTON_START,
                             NULL,
                                         NULL);

        Button2 = CreateWindowEx(0,
                           TEXT("BUTTON"),
                       TEXT("Stop"),
                       WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
                       200, 200, 100, 20,
                               hWnd,
                               (HMENU)BUTTON_STOP,
                               NULL,
                               NULL);
                             ...

    }
    break;

    case …
Run Code Online (Sandbox Code Playgroud)

c c++ winapi

8
推荐指数
2
解决办法
1865
查看次数

标签 统计

c ×1

c++ ×1

winapi ×1