zoukankan      html  css  js  c++  java
  • 进程二双向计时器

    // Time.cpp : Defines the entry point for the application.
    //
    
    #include "stdafx.h"
    #include<stdio.h>
    #include "resource.h"
    
    HWND hwndEdit;
    HWND hwndEdit1;
    
    DWORD WINAPI ThreadProc(LPVOID lpParameter)
    {
        TCHAR szBuff[10] = {0};
        int num = 0;    
        GetWindowText(hwndEdit, szBuff, 10);
        sscanf(szBuff, "%d", &num);
        while(num > 0)
        {
            --num;
            sprintf(szBuff, "%d", num);
            Sleep(1000);
            SetWindowText(hwndEdit, szBuff);
        }
        return 0;
    }
    
    
    DWORD WINAPI ThreadProc1(LPVOID lpParameter)
    {
        TCHAR szBuff[10] = {0};
        int num = 0;    
        GetWindowText(hwndEdit1, szBuff, 10);
        sscanf(szBuff, "%d", &num);
        while(num < 1000)
        {
            ++num;
            sprintf(szBuff, "%d", num);
            Sleep(1000);
            SetWindowText(hwndEdit1, szBuff);
        }
        return 0;
    }
    
    
    BOOL CALLBACK ProcDlg(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
        TCHAR szBuff[10] = {0};
        int num = 0;
        switch(uMsg)
        {
        case WM_CLOSE:
            EndDialog(hwnd, 0);
            break;
        case WM_INITDIALOG:
            hwndEdit = GetDlgItem(hwnd, IDC_EDIT1);
            SetWindowText(hwndEdit, "1000");
    
            hwndEdit1 = GetDlgItem(hwnd, IDC_EDIT2);
            SetWindowText(hwndEdit1, "0");
            return TRUE;
        case WM_COMMAND:
            switch(LOWORD(wParam))
            {
            case IDC_BUTTON:
                HANDLE hThread = ::CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);
                ::CloseHandle(hThread);
    
                HANDLE hThread1 = ::CreateThread(NULL, 0, ThreadProc1, NULL, 0, NULL);
                ::CloseHandle(hThread1);
                return TRUE;
            }
        }
    
        return FALSE;
    }
    
    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    {
         // TODO: Place code here.
        DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, ProcDlg);
        return 0;
    }
  • 相关阅读:
    值传递和引用传递(不是引用类型的传递)的区别
    字符串一旦定义,就表示开辟好了指定的空间,其内容就不可改变
    String类的直接赋值和构造方法赋值的区别
    字符串常量是String类的匿名对象
    Integer和int的区别(转)
    final的好处
    数组引用传递
    构造代码块
    ==和equals()的不同点
    Redis数据类型底层实现
  • 原文地址:https://www.cnblogs.com/Lu3ky-Athena/p/13697166.html
Copyright © 2011-2022 走看看