当前位置:   article > 正文

easyx 实现无边框窗口_easyx去黑边

easyx去黑边

  1. #include <graphics.h>
  2. #include <Windows.h>
  3. #include <stdio.h>
  4. int main()
  5. {
  6. int rW = GetSystemMetrics(SM_CXSCREEN); // 屏幕宽度 像素
  7. int rH = GetSystemMetrics(SM_CYSCREEN); // 屏幕高度 像素
  8. HWND hwnd = initgraph(rW, rH, EW_DBLCLKS); // 初始化绘图窗口并获取窗口句柄(以 EasyX 为例)
  9. LONG l_WinStyle = GetWindowLong(hwnd, GWL_STYLE); // 获取窗口信息
  10. // 设置窗口信息 最大化 取消标题栏及边框
  11. SetWindowLong(hwnd, GWL_STYLE, (l_WinStyle | WS_POPUP | WS_MAXIMIZE) & ~WS_CAPTION & ~WS_THICKFRAME & ~WS_BORDER);// 直接修改窗口样式
  12. // SendMessage(hwnd, WM_SYSCOMMAND, SC_MOVE | HTCAPTION, 0);
  13. SetWindowPos(hwnd, HWND_TOP, 0, 0, rW, rH, 0);
  14. ExMessage m; // 定义消息变量
  15. FILE* fp = fopen("a.txt", "w+");
  16. POINT point;
  17. char buff[1024] = { 0 };
  18. while (true)
  19. {
  20. // 获取一条鼠标或按键消息
  21. m = getmessage(EM_MOUSE | EM_KEY);
  22. GetCursorPos(&point);
  23. ScreenToClient(hwnd, &point); // 将鼠标指针位置转换为窗口坐标
  24. if (point.x < 0 || point.y < 0 || point.x > rW || point.y > rH)
  25. {
  26. fprintf(fp, "在窗口外\n");
  27. sprintf(buff, "在窗口外 源pos:%d %d 转换后pos:%d %d", m.x, m.y, point.x, point.y);
  28. // cleardevice();
  29. outtextxy(200, 200, buff);
  30. }
  31. else
  32. {
  33. fprintf(fp, "在窗口内\n");
  34. sprintf(buff, "在窗口内 源pos:%d %d 转换后pos:%d %d", m.x, m.y, point.x, point.y);
  35. // cleardevice();
  36. outtextxy(200, 200, buff);
  37. }
  38. switch (m.message)
  39. {
  40. case WM_MOUSEMOVE:
  41. // 鼠标移动的时候画红色的小点
  42. putpixel(m.x, m.y, RED);
  43. SendMessage(hwnd, WM_SYSCOMMAND, SC_MOVE | HTCAPTION, 0);
  44. /*point.x = m.x;
  45. point.y = m.y;*/
  46. break;
  47. case WM_LBUTTONDBLCLK:
  48. SetWindowPos(hwnd, HWND_TOP, 0, 0, rW, rH, SWP_NOSIZE);
  49. break;
  50. case WM_LBUTTONDOWN:
  51. // 如果点左键的同时按下了 Ctrl 键
  52. if (m.ctrl)
  53. // 画一个大方块
  54. rectangle(m.x - 10, m.y - 10, m.x + 10, m.y + 10);
  55. else
  56. // 画一个小方块
  57. rectangle(m.x - 5, m.y - 5, m.x + 5, m.y + 5);
  58. break;
  59. case WM_KEYDOWN:
  60. if (m.vkcode == VK_ESCAPE)
  61. return 0; // 按 ESC 键退出程序
  62. break;
  63. }
  64. }
  65. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/94221
推荐阅读
相关标签
  

闽ICP备14008679号