VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 152|回复: 0

[分享] 莫问剑 WINDOWS 应用、系统编程(待续)窗口过程完结记录

[复制链接]
13_avatar_middle
最佳答案
1 
在线会员 发表于 2022-1-13 20:52:39 | 显示全部楼层 |阅读模式
莫问前程有愧,只求今生无悔
  1. #include <Windows.h>


  2. LRESULT CALLBACK Function(HWND hWnd,
  3.     UINT uMsg,
  4.     WPARAM wParam,
  5.     LPARAM lParam
  6. )
  7. {
  8.     switch (uMsg)
  9.     {
  10.     case WM_LBUTTONDOWN: //鼠标左键按下了
  11.         MessageBox(hWnd, TEXT("你按下了左键"), TEXT("键盘鼠标测试"), MB_OKCANCEL);
  12.             break;
  13.     case WM_RBUTTONDOWN:
  14.         MessageBox(hWnd, TEXT("你按下了右键"), TEXT("键盘鼠标测试"), MB_OKCANCEL);
  15.         break;
  16.     case WM_LBUTTONDBLCLK:
  17.         MessageBox(hWnd, TEXT("你双击了左键"), TEXT("键盘鼠标测试"), MB_OKCANCEL);
  18.         break;
  19.     case WM_RBUTTONDBLCLK:
  20.         MessageBox(hWnd, TEXT("你双击了右键"), TEXT("键盘鼠标测试"), MB_OKCANCEL);
  21.         break;
  22.     case WM_DESTROY:
  23.         PostQuitMessage(2);//或者0 退出
  24.         break;
  25.     case WM_PAINT:
  26.     {
  27.         PAINTSTRUCT ps;
  28.         HDC dc = BeginPaint(hWnd, &ps);
  29.         TCHAR* p =(TCHAR*)L"hello VC驿站";
  30.         TextOut(dc, 30, 30, p, wcslen(p));
  31.         EndPaint(hWnd, &ps);
  32.         break;
  33.     }
  34.    
  35.     case WM_CREATE:
  36.         MessageBox(hWnd, TEXT("hello VC驿站"), TEXT("hello"), MB_OKCANCEL);
  37.         break;
  38.     case WM_CLOSE:
  39.         /*if (IDYES == MessageBox(hWnd, L"是否退出?", L"提示:", MB_YESNO))
  40.         {
  41.             DestroyWindow(hWnd);
  42.         }
  43.         else
  44.         {
  45.             return 0;
  46.         }*/
  47.        /* if (IDNO == MessageBox(hWnd, L"是否退出?", L"提示:", MB_YESNO))
  48.         {
  49.             return 0;
  50.         }
  51.             
  52.         break;*/
  53.       
  54.     default:
  55.         return DefWindowProc(hWnd, uMsg, wParam, lParam);
  56.     }

  57.     return 0;

  58. }

  59. int WINAPI WinMain(
  60.     _In_ HINSTANCE hInstance,
  61.     _In_opt_ HINSTANCE hPrevInstance,
  62.     _In_ LPSTR lpCmdLine,
  63.     _In_ int nShowCmd
  64. )
  65. {
  66.     //定义窗口入口winmain

  67.    //创建一个窗口

  68.     //设计一个窗口类wndclass(给成员变量赋值)
  69.     WNDCLASS wc;
  70.     wc.cbClsExtra = 0; //类的附加信息
  71.     wc.cbWndExtra = 0; //窗口附加信息
  72.     wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//背景色
  73.     //wc.hCursor = NULL;  系统默认
  74.     wc.hCursor = LoadCursor(NULL, IDC_APPSTARTING);//加载系统默认光标
  75.     wc.hIcon = LoadIcon(NULL, IDI_WARNING);//加载系统默认的图标
  76.     wc.hInstance = hInstance;//应用程序实例
  77.     wc.lpfnWndProc = Function; //窗口过程函数名字   消息处理函数(重要)
  78.     wc.lpszClassName = TEXT("abc");//类名
  79.     wc.lpszMenuName = NULL;//菜单名
  80.     wc.style = CS_HREDRAW|CS_VREDRAW; //显示风格
  81.     //注册窗口类
  82.     RegisterClass(&wc);
  83.     //创建窗口
  84.     HWND hWnd = CreateWindow(TEXT("abc"), TEXT("hello windows"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
  85.     //显示和更新
  86.     ShowWindow(hWnd, SW_SHOWNORMAL);
  87.     UpdateWindow(hWnd);
  88.     //消息循环
  89.     MSG msg;
  90.     while (GetMessage(&msg, NULL, 0, 0))
  91.     {
  92.         //翻译工作
  93.         //虚拟键盘转换标准字符WM_CHAR
  94.         TranslateMessage(&msg);

  95.         //给系统分发消息
  96.         DispatchMessage(&msg);
  97.     }
  98.     //窗口过程函数


  99.     return msg.wParam;
  100. }
复制代码





上一篇:拷贝构造函数求解
下一篇:win32--mfc窗口创建流程学习记录
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

×【发帖 友情提示】
1、请回复有意义的内容,请勿恶意灌水;
2、纯数字、字母、表情等无意义的内容系统将自动删除;
3、若正常回复后帖子被自动删除,为系统误删的情况,请重新回复其他正常内容或等待管理员审核通过后会自动发布;
4、感谢您对VC驿站一如既往的支持,谢谢合作!

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号-4 )|网站地图wx_jqr

GMT+8, 2022-1-21 10:09

Powered by CcTry.CoM

© 2009-2021 cctry.com

快速回复 返回顶部 返回列表