文档章节

画一个圆角矩形、椭圆

努力喵
 努力喵
发布于 2015/11/07 23:42
字数 496
阅读 48
收藏 0
#include <windows.h>

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

/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPSTR lpCmdLine,
    int nCmdShow)
{
 
    static TCHAR szClassName[] = TEXT("HelloWin"); /*窗口类名*/
    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= szClassName; /*窗口类名*/
    
    
    /*注册窗口*/
    RegisterClass(&wndclass);
    
    /*************第二步:创建窗口(并让窗口显示出来)***************/
    hwnd = CreateWindow(
        szClassName,  /*窗口名字*/
        TEXT("Welcome"), /*窗口标题*/
        WS_OVERLAPPEDWINDOW,  /*窗口风格*/
        CW_USEDEFAULT,  /*初始化x轴的位置*/
        CW_USEDEFAULT,  /*初始化y轴的位置*/
        640,  /*窗口宽度*/
        480,  /*窗口高度*/
        NULL, /*父窗口句柄*/
        NULL, /*窗口菜单句柄*/
        hInstance, /*当前窗口句柄*/
        NULL    /*不使用该值*/
        );
        
    if(hwnd == NULL)
    {
        MessageBox(NULL, "创建窗口出错!", "Error", MB_OK);
        return -1;
    }

        
    /*显示窗口*/
    ShowWindow(hwnd, nCmdShow);
    /*更新(绘制)窗口*/
    UpdateWindow(hwnd);
    
    
    /*************第三步:消息循环*************/
    while(GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);  /*翻译消息*/
        DispatchMessage(&msg);   /*分派消息*/
    }
    return msg.wParam; /*当GetMessage程序返回FALSE是程序结束*/
}

/*************第四步:窗口过程*****************/
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC hdc;
    PAINTSTRUCT ps;
    
    switch(message)
    {
        case WM_PAINT:
            hdc = BeginPaint(hwnd, &ps);
            /*画圆角矩形,左上角坐标(50,50),右下角坐标(150,150),圆角宽10,高15*/
            RoundRect(hdc, 50, 50, 150, 150, 10, 15);
            EndPaint(hwnd, &ps);
            return 0;
            
        /*窗口销毁消息*/
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
    }
    return DefWindowProc(hwnd, message, wParam, lParam);
}



椭圆函数原型:

BOOL Ellipse(
    HDC hdc,  //设备环境句柄
    int nLeftRect,  //左上角x坐标
    int nTopRect,  //左上角y坐标
    int nRightRect,  //右下角x坐标
    int nBottomRect  //右下角y坐标
);


画直线:

case WM_PAINT:
    hdc = BeginPaint(hwnd, &ps);
    MoveToEx(hdc, 150, 150, NULL); //设定起始点,不保存当前点坐标
    LineTo(hdc,200, 60); //第一条线
    LineTo(hdc, 250, 150); //第二条线
    LineTo(hdc, 150, 150); //第三条线
    EndPaint(hwnd, &ps);
    return 0 ;

© 著作权归作者所有

努力喵
粉丝 5
博文 105
码字总数 34117
作品 0
广州
私信 提问
Android:视图绘制(一) ------基本的绘图操作Paint和Canvas

大家都知道Android的UI很强大,各种系统控件和自定义控件,实现了很多绚丽的效果。而这些都离不开我们这篇文章讲到的Paint和Canvas。 Android提供了Canvas(画布)和Paint(画笔)用来实现视...

u010635353
2016/09/20
0
0
画影图形: SVG & Canvas Shapes

画影图形指描画犯人面影,悬赏通缉。这里用法明显有问题,不过取其表义而已。 在一个前端看来,画图有三种方法,Cavas,SVG 以及 CSS。至于三者优劣,将在此针对各种图形做逐一比较,有方,圆...

shanyue
2018/07/23
0
0
LeeJay/UIBezierPath_CAShapeLayer

UIBezierPath和CAShapeLayer绘图 UIBezierPath 官方文档 The UIBezierPath class lets you define a path consisting of straight and curved line segments and render that path in your c......

LeeJay
2016/10/09
0
0
Windows Phone开发(30):图形

图形如矩形、椭圆、路径等都从Shape类派生,它们一般表示规则或不规则图形,这些图形都是简单的二维图形,我相信大家都能理解的。 例一:矩形。 请看下面的XAML代码。 图形比较适合在Canvas中...

junwong
2012/04/18
407
0
第二章 2绘制线条简单图形

线条和形状 同Windows其它版本相比,Windows CE提供相当少的功能的领域之一就是基本线条绘制和形状绘制功能。用来创建复杂环形的Chord, Arc, 和Pie函数被去掉了。大部分使用"当前点[current ...

技术小胖子
2017/11/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue warn]: Computed property "activeNames" was assigned to but it has no setter.

在使用 vue,element-ui时,如下代码 <template> <el-form :model="numberValidateForm" ref="numberValidateForm"> <el-form-item> <el-tabs v-model="activeNames" @tab-cl......

牧云橙
36分钟前
6
0
重构-改善既有代码的设计-6.2内联函数

6.2内联函数 动机 本书经常以简短的函数表现动作意图,这样会使代码更清晰易读。但有时候你会遇到某些函数,其内部代码和函数名称同样清晰易读。也可能你充够了该函数的内部实现,使其内容和...

还仙
37分钟前
7
0
Less 混入

混合类似于编程语言中的函数。 Mixins 是一组CSS属性,允许我们将一个类的属性嵌套于另一个类,被嵌入的类可以看作是变量,并且包含类名作为其属性,也就是说我们可以用一个类定义样式然后把...

凌兮洛
40分钟前
6
0
频繁FGC的真凶原来是它

频繁FGC的真凶原来是它 上周排查了一个线上问题,主要现象是CPU占用过高,jvm old区占用过高,同时频繁fgc,我简单排查了下就草草收场了,但是过后我对这个问题又进行了复查,发现问题没有那...

每天晒白牙
40分钟前
6
0
简单的树形菜单如何写

业务需求 数据结构中含有图片、名称、children的树形结构,需要展示出每一级的图片名称和图片,找了些树形图的插件,都没有展示大的图片的,一般都是小图标,就自己试着写一个包含图的简单的...

tianyawhl
42分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部