9WinMap 映射

  1. #include <windows.h>
  2. #include <iostream>
  3. CHAR szText[256] = { 0 };
  4. #define PrintLog(x) WriteConsole(g_hStdout, x, strlen(x), NULL, NULL)
  5. HINSTANCE g_hInst = NULL; //窗口句柄
  6. HANDLE g_hStdout = NULL; //控制台句柄
  7. //OnPaint
  8. void OnPaint(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  9. {
  10. PAINTSTRUCT ps = { 0 };
  11. HDC hDC = BeginPaint(hWnd, &ps);
  12. Rectangle(hDC, 100, 100, 200, 200); //默认情况下是100个逻辑单位
  13. int nOldMap = SetMapMode(hDC, MM_LOMETRIC);//0.1MM X方向向右,Y方向向上
  14. Rectangle(hDC, 100, -100, 200, -200); //默认情况下是100个逻辑单位
  15. SetMapMode(hDC, nOldMap);//恢复旧的映射模式
  16. nOldMap = SetMapMode(hDC, MM_HIMETRIC);
  17. Rectangle(hDC, 100, -100, 200, -200); //默认情况下是100个逻辑单位
  18. SetMapMode(hDC, nOldMap);
  19. nOldMap = SetMapMode(hDC, MM_ISOTROPIC);
  20. SetViewportExtEx(hDC, 2, 2, NULL); //屏幕单位
  21. SetWindowExtEx(hDC, 4, 4, NULL); //逻辑单位
  22. SetWindowOrgEx(hDC, 100, 100, NULL); //X和Y偏移100
  23. Rectangle(hDC, 100, 100, 200, 200); //默认情况下是100个逻辑单位
  24. SetMapMode(hDC, nOldMap);
  25. EndPaint(hWnd, &ps);
  26. }
  27. LRESULT CALLBACK WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
  28. {
  29. switch (nMsg)
  30. {
  31. case WM_PAINT:
  32. OnPaint(hWnd, nMsg, wParam, lParam);
  33. break;
  34. case WM_DESTROY:
  35. PostQuitMessage(0);
  36. break;
  37. }
  38. return DefWindowProc(hWnd, nMsg, wParam, lParam);
  39. }
  40. BOOL RegisterWnd(LPSTR pszClassName)
  41. {
  42. WNDCLASSEX wce = { 0 };
  43. wce.cbSize = sizeof(wce);
  44. wce.cbClsExtra = 0;
  45. wce.cbWndExtra = 0;
  46. wce.hbrBackground = HBRUSH(COLOR_BTNFACE + 1);
  47. wce.hCursor = NULL;
  48. wce.hIcon = NULL;
  49. wce.hIconSm = NULL;
  50. wce.hInstance = g_hInst;
  51. wce.lpfnWndProc = WndProc;
  52. wce.lpszClassName = pszClassName;
  53. wce.lpszMenuName = NULL;
  54. wce.style = CS_HREDRAW | CS_VREDRAW;
  55. ATOM atom = RegisterClassEx(&wce);
  56. if (atom == NULL)
  57. {
  58. return FALSE;
  59. }
  60. else
  61. {
  62. return TRUE;
  63. }
  64. }
  65. HWND CreateWnd(LPSTR pszClassName)
  66. {
  67. HWND hWnd = CreateWindowEx(0, pszClassName, "灭天", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
  68. CW_USEDEFAULT, NULL, NULL, g_hInst, 0);
  69. return hWnd;
  70. }
  71. void ShowWnd(HWND hWnd)
  72. {
  73. ShowWindow(hWnd, SW_SHOW);
  74. UpdateWindow(hWnd);
  75. }
  76. void Msg()
  77. {
  78. MSG msg = { 0 };
  79. while (GetMessage(&msg, NULL, 0, 0))
  80. {
  81. TranslateMessage(&msg);
  82. DispatchMessage(&msg);
  83. }
  84. }
  85. void ConsoleWnd()
  86. {
  87. AllocConsole();
  88. g_hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
  89. CHAR szText[] = "Debug start:\n";
  90. WriteConsole(g_hStdout, szText, strlen(szText), NULL, NULL);
  91. }
  92. int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nShowCmd)
  93. {
  94. g_hInst = hInstance;
  95. //ConsoleWnd();
  96. RegisterWnd("oooo");
  97. HWND hWnd = CreateWnd("oooo");
  98. ShowWnd(hWnd);
  99. Msg();
  100. return 0;
  101. }

来自为知笔记(Wiz)

时间: 2024-11-03 01:20:16

9WinMap 映射的相关文章

MyBatis学习(四)XML配置文件之SQL映射的XML文件

SQL映射文件常用的元素: 1.select 查询语句是MyBatis最常用的语句之一. 执行简单查询的select元素是非常简单的: <select id="selectUser" parameterType="int" resultType="hashmap"> SELECT * FROM PERSON WHERE ID = #{id} </select> 这个语句被称作selectUser,接受一个int类型的参数,

MyBatis框架中Mapper映射配置的使用及原理解析(七) MapperProxy,MapperProxyFactory

从上文<MyBatis框架中Mapper映射配置的使用及原理解析(六) MapperRegistry> 中我们知道DefaultSqlSession的getMapper方法,最后是通过MapperRegistry对象获得Mapper实例: public <T> T getMapper(Class<T> type, SqlSession sqlSession) { final MapperProxyFactory<T> mapperProxyFactory =

Hibernate的七种映射关系之七种关联映射(二)

继续上篇博客 七.Hibernate双向一对多关联映射:让多的一端来维护关系. 主要是解决一对多单向关联的缺陷,而不是需求驱动的. 1.在Student.java实体类里添加Classes引用.private Classes classes; 2.Student.hbm.xml里添加many-to-one标签:<many-to-one name="classes" column="classesid"/>.Classes.hbm.xml在例子(六)里的那

Hibernate的七种映射关系之七种关联映射(一)

关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用. 一.Hibernate多对一关联映射:就是在"多"的一端加外键,指向"一"的一端. 比如多个学生对应一个班级,多个用户对应一个级别等等,都是多对一关系. 1."多"端实体加入引用"一"端实体的变量及getter,setter方法. 比如说多个学生对应一个班级,在学生实体类加入:private Grade grade; 2."多"端配置文

AD 脚本kixtart运用之一 ( 网络盘自动映射)

首先我们在Active Directory 用户和计算机工具中,在用户的配置文件下的登陆脚本里输入如下 然后我们在域共享\\nccn.int\NETLOGON\ 下新建一个NEO.bat的文件内容如下 -------------------------------------------- @echo off cmd /c %logonserver%\netlogon\KIX32.EXE %logonserver%\netlogon\kixtart.kix exit --------------

jsp映射为其他地址上去 ???

在web.xml 里面配置servlet不起作用,所以配置jsp,然后在jsp里面跳转到servlet去   ???  第八天中的<08-jsp常用标签.avi> 在web.xml里面先设定 14.jsp 为默认首页,然后在14.jsp 里面设定跳转到servlet 代码里面去 映射到其他地址去:

mybatis之高级结果映射

先贴一句官方文档内容 如果世界总是这么简单就好了. 正如官方文档所说:如果一切都是这么简单,那该多好啊,但是实际上,我们面对的是复杂的对象,就是对象里有对象,有列表对象,总之五花八门的对象.这个时候我们期盼这mybatis能帮我们来解决这个问题. 今天,我就遇到了这样的一个问题: 在做基于RBAC权限分配模型中,一共有五张表 sys_permission  记录权限信息,包括权限名称,权限url等 sys_role 记录角色信息,包括角色名和角色id sys_role_permission 记录

组策略 之 驱动器映射

目的:用户登陆自动挂载预设的网络驱动器. 可以根据不同的用户组来分类,例如:财务的共享文件夹,人资的共享文件夹. 在文件服务器共享设置好权限的文件夹然后使用策略发布给相应的用户或者组. 策略位置:用户配置---首选项---windows设置----驱动器映射 一.选择 "驱动器映射"  "新建" 说明:1."操作"选择:"更新",正常情况下选择此选项. 2.位置    :可直接属于共享文件夹的位置,例如:\\dc01\shar

iptables -对一IP映射

实现外部IP 124.3.3.3 一对一映射到内部服务器 10.0.0.8 网关:eth0 124.42.60.109 eth1 10.0.0.254 首先在路由器网关上绑定 124.3.3.3,可以是别名或辅助IP的方式 -A PREROUTING -d 124.3.3.3 -j DNAT --to-destination 10.0.0.8 -A POSTROUTING -s 10.0.0.8 -o eth0 -j SNAT --to-source 124.3.3.3 还需要添加一条,当内网访