MOOC清华《VC++面向对象与可视化程序设计》第2章:Windows绘图-例(4)映像模式的使用(二)
来源:互联网 发布:cf刷枪软件永久 编辑:程序博客网 时间:2024/05/21 14:57
#include <windows.h>#include <string.h>#include <stdlib.h>#include <stdio.h>LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int nMode=MM_TEXT;int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow){HWND hwnd ;MSG Msg ;WNDCLASS wndclass ; char lpszClassName[] = "映射模式"; char lpszTitle[]= "My_Map_Mode"; wndclass.style = 0; 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 = lpszClassName ;if( !RegisterClass( &wndclass)){MessageBeep(0) ;return FALSE ;}hwnd = CreateWindow(lpszClassName,lpszTitle,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL) ;ShowWindow( hwnd, nCmdShow) ;//显示窗口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;HPEN hPen;switch(message){case WM_CHAR:if(wParam=='a'||wParam=='A') nMode=MM_ISOTROPIC;else if(wParam=='b'||wParam=='B')nMode=MM_ANISOTROPIC;else if(wParam=='c'||wParam=='C')nMode=MM_LOMETRIC;else ;InvalidateRect(hwnd,NULL,1);//刷新用户区break;case WM_PAINT:hdc=BeginPaint(hwnd,&ps);//取得设备环境句柄SetMapMode(hdc,nMode); //设置映射模式SetWindowExtEx(hdc,15,15,NULL); //设置窗口区域SetViewportExtEx(hdc,15,10,NULL); //设置视口区域SetViewportOrgEx(hdc,120,120,NULL); //设置视口原点 hPen=CreatePen(PS_SOLID,2,RGB(255,0,0)); //创建红色画笔SelectObject(hdc,hPen); //将画笔选入设备环境//画坐标系,原点在视口原点 LineTo(hdc,200,0);LineTo(hdc,195,-5);MoveToEx(hdc,200,0,NULL);LineTo(hdc,195,5); MoveToEx(hdc,0,0,NULL);LineTo(hdc,0,200);LineTo(hdc,-5,195);MoveToEx(hdc,0,200,NULL);LineTo(hdc,5,195);DeleteObject(hPen); //删除画笔EndPaint(hwnd,&ps);//释放设备环境句柄break;case WM_DESTROY:PostQuitMessage(0);break; default:return DefWindowProc(hwnd,message,wParam,lParam);}return 0;}
阅读全文
0 0
- MOOC清华《VC++面向对象与可视化程序设计》第2章:Windows绘图-例(4)映像模式的使用(二)
- MOOC清华《VC++面向对象与可视化程序设计》第2章:Windows绘图-例(2)映像模式的使用(一)
- MOOC清华《VC++面向对象与可视化程序设计》第2章:Windows绘图-例(1)静态图形的绘制
- MOOC清华《VC++面向对象与可视化程序设计》第2章:Windows绘图-例(3)移动图形的绘制
- MOOC清华《VC++面向对象与可视化程序设计》第3章:Windows文本-例(4)竖排的古诗
- MOOC清华《VC++面向对象与可视化程序设计》第3章:Windows文本-例(3)动态文本的显示
- MOOC清华《VC++面向对象与可视化程序设计》第3章:Windows文本-例(2)字体、颜色、下划线
- MOOC清华《VC++面向对象与可视化程序设计》第3章:Windows文本-例(1)文本显示示例程序
- MOOC清华《VC++面向对象与可视化程序设计》第2章:编程作业-渐变图形的绘制(“万花筒”程序)
- MOOC清华《VC++面向对象与可视化程序设计》第1章:空白窗口的创建(空项目)
- MOOC清华《VC++面向对象与可视化程序设计》第1章:空白窗口的创建(Win32项目)
- MOOC清华《VC++面向对象与可视化程序设计》第5章:对话框资源例程(模态对话框样例)
- MOOC清华《VC++面向对象与可视化程序设计》第5章:对话框资源例程(非模态对话框样例)
- MOOC清华《VC++面向对象与可视化程序设计》第4章:键盘实例程序(组合键)
- MOOC清华《VC++面向对象与可视化程序设计》第4章:键盘操作例程(五个对话框)
- MOOC清华《VC++面向对象与可视化程序设计》第4章:鼠标实例程序(光标九宫格)
- MOOC清华《VC++面向对象与可视化程序设计》第4章:鼠标操作例程(灰白选框)
- MOOC清华《VC++面向对象与可视化程序设计》第3章:编程作业-艺术字的显示
- CodeForces
- LInux中 ~/.profile ~/.bashrc /etc/profile /etc/bashrc 的区别
- 【LCA求最短距离】hdu 2586 How far away ?
- 事务模板 VS 声明式事务
- 525. Contiguous Array
- MOOC清华《VC++面向对象与可视化程序设计》第2章:Windows绘图-例(4)映像模式的使用(二)
- 关于海思HI3531A平台使用std::thread创建线程问题(未解决)
- 7.go开源cache2go项目笔记——benchmark_test文件
- 遇到问题的对策
- 8.go开源cache2go项目笔记——callbacks调用
- XML深度解析
- RESTful API开发神器swagger与spring-boot的快速整合使用
- Windows下安装TensorFlow
- 理解RESTful架构