zoukankan      html  css  js  c++  java
  • 打点画线


    #include <windows.h>

    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR szCmdLine, int iCmdShow)
    {
        
    static TCHAR szAppName[] = TEXT("Bezier");
        HWND        hwnd;
        MSG            msg;
        WNDCLASS    wndclass;

        wndclass.style            
    = CS_HREDRAW | CS_VREDRAW;
        wndclass.lpfnWndProc    
    = WndProc;
        wndclass.cbClsExtra        
    = 0;
        wndclass.cbWndExtra        
    = 0;
        wndclass.hInstance        
    = hInstance;
        wndclass.hIcon            
    = LoadIcon(NULL, IDI_APPLICATION);
        wndclass.hCursor        
    = LoadCursor(NULL, IDC_ARROW);
        wndclass.hbrBackground    
    = (HBRUSH) GetStockObject(WHITE_BRUSH);
        wndclass.lpszMenuName    
    = NULL;
        wndclass.lpszClassName    
    = szAppName;

        
    if(!RegisterClass(&wndclass))
        
    {
            MessageBox(NULL, TEXT(
    "Program requires Windows NT!"), szAppName, MB_ICONERROR);
            
    return 0;
        }


        hwnd 
    = CreateWindow(szAppName, TEXT("Bezier Splines"),
                            WS_OVERLAPPEDWINDOW,
                            CW_USEDEFAULT, CW_USEDEFAULT,
                            CW_USEDEFAULT, CW_USEDEFAULT,
                            NULL, NULL, hInstance, NULL);
        ShowWindow(hwnd, iCmdShow);
        UpdateWindow(hwnd);

        
    while(GetMessage(&msg, NULL, 00))
        
    {
            TranslateMessage(
    &msg);
            DispatchMessage(
    &msg);
        }

        
    return msg.wParam;
    }



    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        
    static HDC        hdc;
        
    static HPEN        hPen1, hPen2;
        
    int                cxClient, cyClient;
        
    static int        nCount = 0;
        
    static int        crColor = RGB(25500);
        
    static POINT    apt[256];
        PAINTSTRUCT        ps;

        
    switch(message)
        
    {
        
    case WM_SIZE:

            cxClient 
    = LOWORD(lParam);
            cyClient 
    = HIWORD(lParam);
            hdc 
    = GetDC(hwnd);

            crColor 
    = RGB(00255);
            hPen1 
    = CreatePen(PS_SOLID, 5, crColor);

            crColor 
    = RGB(25500);
            hPen2 
    = CreatePen(PS_SOLID, 1, crColor);

            
    return 0;

        
    case WM_LBUTTONDOWN:

            apt[nCount].x 
    = LOWORD(lParam);
            apt[nCount].y 
    = HIWORD(lParam);
            nCount
    ++;

            SelectObject(hdc, (HGDIOBJ) hPen1);

            MoveToEx(hdc, LOWORD(lParam), HIWORD(lParam), NULL);
            LineTo(hdc, LOWORD(lParam), HIWORD(lParam));

            
    return 0;

        
    case WM_RBUTTONDOWN:

            SelectObject(hdc, (HGDIOBJ) hPen2);

            apt[nCount].x 
    = apt[0].x;
            apt[nCount].y 
    = apt[0].y;
            Polyline(hdc, apt, nCount 
    + 1);
            nCount 
    = 0;
            
    return 0;
        
    /*case WM_PAINT:
            InvalidateRect(hwnd, NULL, TRUE);

            hdc = BeginPaint(hwnd, &ps);

            SetPixel(hdc, mx, my, crColor); 

            EndPaint(hwnd, &ps);
            return 0;
    */


        
    case WM_DESTROY:
            ReleaseDC(hwnd, hdc);
            DeleteObject(hPen1);
            DeleteObject(hPen2);
            PostQuitMessage(
    0);
            
    return 0;
        }

        
    return DefWindowProc(hwnd, message, wParam, lParam);
    }



    一个比较简单的,画线的程序。
    先用鼠标左键点画点,然后点一下鼠标右键。就会按顺序将这些点用连起来。
    修改自《Windows程序设计》上的一个例子,刚刚学习Win32 SDK编程时做的
    代码看起来挺笨拙的。
  • 相关阅读:
    mysql auto_increment自增初始值与步长
    mysql配置的一些问题以及命令的说明
    数据分析-数据透视表
    线程进程
    tkinter学习-- 九、三种事件绑定方式总结
    tkinter学习-- 八、事件event
    tkinter学习-- 六、Radiobutton(单选按钮)与checkbutton(复选按钮)
    tkinter学习-- 四、控件Text
    在spring Boot中使用swagger-bootstrap-ui
    js 数据比较
  • 原文地址:https://www.cnblogs.com/Henrya2/p/1344303.html
Copyright © 2011-2022 走看看