在win32 窗口 绘制红色直线
2018-02-08 14:30
423 查看
在win32 窗口 绘制红色直线
测试环境: win7 64 位 vs2013
建立一个 win32 应用程序 ,空项目,名称是 HelloPaintRedLine,
在项目中添加源文件 HelloPaintRedLine.cpp :
内容如下:
运行效果 如下 :
测试环境: win7 64 位 vs2013
建立一个 win32 应用程序 ,空项目,名称是 HelloPaintRedLine,
在项目中添加源文件 HelloPaintRedLine.cpp :
内容如下:
#include <windows.h> #include <stdlib.h> #include <string.h> #include <tchar.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR szAppName[] = 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 = szAppName; if (!RegisterClass(&wndclass)) { MessageBox(NULL, TEXT("This program requires Windows NT!"), szAppName, MB_ICONERROR); return 0; } hwnd = CreateWindow(szAppName, // window class name TEXT("The Hello Program"), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL); // creation parameters ShowWindow(hwnd, iCmdShow); UpdateWindow(hwnd); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; switch (message) { case WM_CLOSE: DestroyWindow(hwnd); break; case WM_DESTROY: PostQuitMessage(0); break; case WM_PAINT:{ //1 hdc = BeginPaint(hwnd, &ps); //2 HPEN hPen = CreatePen(PS_SOLID,3,RGB(255,0,0)); //3 HPEN hOldPen = (HPEN)SelectObject(hdc,hPen); //4 MoveToEx(hdc, 0, 50, NULL); //5 LineTo(hdc, 200, 50); //6 SelectObject(hdc, hOldPen); //7 DeleteObject(hPen); //8 EndPaint(hwnd, &ps); //9 break; //10 } //11 default: return DefWindowProc(hwnd, message, wParam, lParam); } return 0; }
运行效果 如下 :
相关文章推荐
- win32 窗口 绘制红色填充矩形
- win32 窗口 双缓冲技术 内存DC 绘制直线
- win32 窗口绘制直线
- <Win32_9>SetWindowRgn函数的应用——绘制个性化形状的窗口
- Win32 绘图基础 -- 绘制直线、边框、贝塞尔曲线、填充、裁剪
- win32 窗口 绘制矩形
- WPF与Win32完成窗口及各个子控件的绘制的对比
- win32 窗口 自定义坐标系 绘制椭圆
- win32 窗口 绘制椭圆
- Win32 绘图基础 -- 绘制直线、边框、贝塞尔曲线、填充、裁剪
- win32 窗口 自定义坐标系 绘制表盘
- 重温WIN32 API ------ 窗口上绘制位图文件
- Java基础之在窗口中绘图——绘制直线和矩形(Sketcher 2 drawing lines and rectangles)
- Win32知识之窗口绘制.窗口第一讲
- Win32 OpenGL编程(3) 基本图元(点,直线,多边形)的绘制
- win32 窗口绘制正弦波
- 绘制一个普通的蓝色背景的窗口,中间有一个红色的方块
- 解说Win32的窗口子类化
- Win32 SDK中窗口全屏处理
- win32 api CreateWindow创建窗口控件及设置字体