windows编程中画笔与画刷
来源:互联网 发布:光翼网络班视频 编辑:程序博客网 时间:2024/05/21 10:32
#include <windows.h>#include <iostream.h>//声明窗口函数原型LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);BOOL Initinstance(HINSTANCE hInstance,int nCmdShow);void MyPaint(HDC hdc);ATOM MyRegisterClass(HINSTANCE hInstance);HINSTANCE hInst;HPEN hPen[7];HBRUSH hBru[7];int sPen[7]={PS_SOLID,PS_DASH,PS_DOT,PS_DASHDOT,PS_DASHDOTDOT,PS_NULL,PS_INSIDEFRAME};int sBru[7]={HS_VERTICAL,HS_HORIZONTAL,HS_CROSS,HS_DIAGCROSS,HS_FDIAGONAL,HS_BDIAGONAL};//--------------------------------------------//主函数int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE PreInstance, LPSTR lpCmdLine, int nCmdShow){//定义窗口句柄MSG msg;//定义一个用来存储消息的变量MyRegisterClass(hInstance);if(!Initinstance(hInstance,nCmdShow)) return false;while(GetMessage(&msg,NULL,0,0))//消息循环{TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;}//-------------------------------------//处理消息的窗口函数ATOM MyRegisterClass(HINSTANCE hInstance){WNDCLASSEX wcex;wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW;wcex.lpfnWndProc = (WNDPROC)WndProc;wcex.cbClsExtra = 0;wcex.cbWndExtra = 0;wcex.hInstance = hInstance;wcex.hIcon = NULL;wcex.hCursor = LoadCursor(NULL, IDC_ARROW);wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);wcex.lpszMenuName = NULL;wcex.lpszClassName = "canvas";wcex.hIconSm = NULL;return RegisterClassEx(&wcex);}BOOL Initinstance(HINSTANCE hInstance,int nCmdShow){HWND hWnd;HDC hdc;int i;hInst = hInstance;hWnd = CreateWindow("canvas","绘图窗口",WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);if(!hWnd) return FALSE;MoveWindow(hWnd,10,10,650,350,true);ShowWindow(hWnd,nCmdShow);UpdateWindow(hWnd);for(i=0;i<7;i++){hPen[i] = CreatePen(sPen[i],1,RGB(255,0,0));if(i==6)hBru[i] = CreateSolidBrush(RGB(0,255,0));elsehBru[i] = CreateHatchBrush(sBru[i],RGB(0,255,0));}hdc = GetDC(hWnd);MyPaint(hdc);ReleaseDC(hWnd,hdc);return TRUE;}void MyPaint(HDC hdc){int i,x1,x2,y;for(i=0;i<7;i++){y = (i+1) * 30;SelectObject(hdc,hPen[i]);MoveToEx(hdc,30,y,NULL);LineTo(hdc,100,y);}x1 = 120;x2 = 180;for(i=0;i<7;i++){SelectObject(hdc,hBru[i]);Rectangle(hdc,x1,30,x2,y);x1 += 70;x2 += 70;}}LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam){PAINTSTRUCT ps;HDC hdc;int i;switch(message){case WM_PAINT:{hdc = BeginPaint(hWnd,&ps);MyPaint(hdc);EndPaint(hWnd,&ps);}break;case WM_DESTROY:{for(i = 0;i < 7 ;i++){DeleteObject(hPen[i]);DeleteObject(hBru[i]);}PostQuitMessage(0);}break;default:return DefWindowProc(hWnd,message,wParam,lParam);}return 0;}
- windows编程中画笔与画刷
- windows编程中画笔与画刷
- Windows程序设计--画笔和画刷
- 画笔与画刷&GDI坐标系
- 画笔和画刷
- 画笔和画刷
- 画刷和画笔
- 画笔和画刷
- 画刷和画笔
- 画笔和画刷
- 【转载】画笔与画刷VC(1)
- 【转载】画笔与画刷VC(2)
- Gdiplus学习2——画笔与画刷
- 画笔对象,画刷对象
- VC:画刷和画笔
- 使用 Windows 现有画笔
- Windows程序设计:画笔
- CXXXView中增加数组(画线、画笔、画刷、位图、透明画刷、连续画图同理)
- 利用SQLiteOpenHelper来管理SQLite数据库
- cas入门文章
- I/O
- 1
- TDD Tip:方法内部New出来的对象如何Mock
- windows编程中画笔与画刷
- Nginx 访问控制
- 自卑一阵子
- 嵌入式Linux下基于FFmpeg的视频硬件编解码
- GeoServer+OpenLayers发布下载的Google卫星影像
- Axis-1.1 webService实现跨project传递参数入
- 一个游戏程序员的学习资料
- 在vs2010+MFC中动态添加菜单选项
- 计算出二进制数中有多少个1