本例效果图:


program Project1;usesWindows, Messages;{供 WM_CLOSE 消息调用的自定义过程}
procedure OnClose(h: HWND);
beginif IDOK = MessageBox(h, '确认关闭吗?', '提示', MB_OKCANCEL) thenDestroyWindow(h);
end;function WndProc(wnd: HWND; msg: UINT; wParam: Integer; lParam: Integer): Integer; stdcall;
beginResult := 0;case msg ofWM_CLOSE  : OnClose(wnd); {在收到 WM_CLOSE 消息时调用自定义的 OnClose 过程}WM_DESTROY: PostQuitMessage(0);elseResult := DefWindowProc(wnd, msg, wParam, lParam);end;
end;function RegMyWndClass: Boolean;
varcls: TWndClass;
begincls.style         := CS_HREDRAW or CS_VREDRAW;cls.lpfnWndProc   := @WndProc;cls.cbClsExtra    := 0;cls.cbWndExtra    := 0;cls.hInstance     := HInstance;cls.hIcon         := 0;cls.hCursor       := LoadCursor(0, IDC_ARROW);cls.hbrBackground := HBRUSH(COLOR_WINDOW + 1);cls.lpszMenuName  := nil;cls.lpszClassName := 'MyWnd';Result := RegisterClass(cls) <> 0;
end;{程序入口}
consttit = 'New Form';ws = WS_OVERLAPPEDWINDOW;x = 100; y = 100; w = 300; h = 180;
varhWnd: THandle;Msg : TMsg;
beginRegMyWndClass;hWnd := CreateWindow('MyWnd', tit, ws, x, y, w, h, 0, 0, HInstance, nil);ShowWindow(hWnd, SW_SHOWNORMAL);UpdateWindow(hWnd);while(GetMessage(Msg, 0, 0, 0)) dobeginTranslateMessage(Msg);DispatchMessage(Msg);end;
end.

转载于:https://www.cnblogs.com/del/archive/2008/04/18/1160505.html

Windows 编程[9] - WM_CLOSE 消息相关推荐

  1. windows编程之鼠标消息总结

    1 确定鼠标是否存在:fMouse = GetSystemMetrics (SM_MOUSEPRESENT) ; 2 获取鼠标上按键数目:cButtons = GetSystemMetrics (SM ...

  2. Windows 编程常用键盘消息命令

           每一个点都很值得研究,这都是皮毛.        1.扫描码与虚拟码 键盘从最早的83键发展到当今流行的101键,虽然增加了许多键,但按键的基本操作保持不变,即按下一个键或释放一个键.按 ...

  3. Windows 编程[8] - WM_PAINT 消息

    本例效果图: program Project1;usesWindows, Messages;{供 WM_PAINT 消息调用的自定义过程} procedure OnPaint(h: HWND); co ...

  4. Windows 编程[11] - WM_SIZE 消息

    本例效果图: program Project1;usesWindows, Messages;{供 WM_SIZE 消息调用的自定义过程} procedure OnSize(h: HWND); varR ...

  5. 如何使对话框中接收到WM_CHAR消息(Windows编程)

    我们大家都知道,对话框是有的时候捕获不到WM_CHAR消息的.比如,你想使对话框里的Edit控件所键入的全部变为大写.我们毫不犹豫的写到:    #include //Declare the Dial ...

  6. windows编程,消息函数中拦截消息的问题

    很多年没有写windows窗口程序了,今天自制基于vulkan的程序时遇到了一些问题,部分代码如下: LRESULT CALLBACK XWindow::WndProc(HWND hWnd, UINT ...

  7. Windows编程 从消息窗口到基本窗口 游戏循环窗口框架的简单实现

    版本:VS2015 语言:C++ 本来想昨天写个消息窗口的内容,讲一些好玩的东西,不过没有时间了,就放到一起了. 今天正好把书的第二章看完了,感觉良好,Windows的编程确实难度要高,一下子会有一大 ...

  8. windows编程中wParam和lParam消息

    windows编程中wParam和lParam消息 1.WM_PAINT消息,LOWORD(lParam)是客户区的宽,HIWORD(lParam)是客户区的高. 2 滚动条WM_VSCROLL或WM ...

  9. Windows编程捕获特定窗口及键盘鼠标消息模拟

    Windows编程捕获特定窗口及键盘鼠标消息模拟 一.简介 二.使用到的API简介 三.获取Windows记事本的编辑区窗口的句柄并模拟输入操作 1.分析 2.代码一 3.代码二 四.后记 一.简介 ...

最新文章

  1. 小米4公布会视频地址
  2. [trustzone]-ARM Core的扩展和ELx级别的切换过程
  3. 三星S5 电信版(G9009D)Android 5.0系统,root教程【亲测可行】
  4. nodejs常用模块-url
  5. 浏览器的同源策略与跨域
  6. 基于ssm框架和freemarker的商品销售系统
  7. cv mat保存图片_(七)神秘的Mat
  8. python中os.path.join()的循环用法_Python os.path.join()用法及代码示例
  9. NGINX 502 Bad Gateway 用upstream解决方法
  10. IBM大中华区总架构师讲述话说程序员的职业生涯
  11. mapreduce 的partitioner,GroupComparator,KeyComparator,分布式缓存使用示例
  12. 设计模式之禅(第2版)PDF资源分享
  13. 360主机卫士正式上线
  14. 10个人用的云服务器要什么配置文件,10个人用的云服务器要什么配置文件
  15. 【gradle Composing builds】gradle依赖管理Composing builds之杂症-快速同步
  16. Android辅助功能【Accessibility】入门简介及使用
  17. 批处理bat提示 文件名、目录名或卷标语法不正确
  18. 基于Java+SpringBoot+Thymeleaf+Mysql家政服务预约系统设计与实现
  19. 如何为linux kernel贡献代码
  20. 文件编辑(vi/vim)

热门文章

  1. 微型计算机有什么电路组成,第二章 微型计算机的基本电路组成
  2. oracle 10.2.0.4 rac emca,ORACLE 10G RAC升级10.2.0.4报错
  3. c# 字典按ascii 排序_利用工作表函数,对字典键进行排序并给出对应重复个数
  4. java游戏脱逃_‎App Store 上的“冒险的逃离筏船”
  5. str.split() 与 str.split(‘ ‘)区别
  6. 融云发送图片消息_发送消息
  7. MySQL面试题 | 附答案解析(二)
  8. 前端HTML渲染带箭头的线
  9. 机器学习中的数学基础(4.1):支持向量机Support Vector Machine(SVM)
  10. 智慧工地-基于深度学习yolov3的安全帽检测以及安全帽检测数据集(1)