当前位置: 首页 > news >正文

MFC应用防止多开

编写的MFC应用默认会存在可同时打开多个窗口问题,这样有可能产生问题。如何防止打开多次。

FindWindow(L"#32770", L"DemoApp");

	// 创建互斥量,确保单实例运行. 不同应用要不一样名字HANDLE hMutex = ::CreateMutex(NULL, FALSE, L"CDemoAppSingleInstance");if (hMutex != NULL && GetLastError() == ERROR_ALREADY_EXISTS){// 已经有实例在运行,找到主窗口并激活HWND hWnd = ::FindWindow(L"#32770", L"DemoApp");if (hWnd){if (::IsIconic(hWnd)) // 如果最小化,恢复::ShowWindow(hWnd, SW_RESTORE);::SetForegroundWindow(hWnd); // 激活窗口}return FALSE; // 退出新实例}

新开窗口,能直接打开之前的。但是标题变化后会找不到窗口。

HWND hWnd = ::FindWindow(L"CDemoAppWndClass", NULL);

在PreCreateWindow 中自定义class。

不会应标题变化而改变,但是再次打开应用时,不会跳到之前窗口。

发自定义MESSAGE 也是如此。

http://www.dtcms.com/a/361185.html

相关文章:

  • Prometheus Alertmanager 告警组件学习
  • Linux 正则表达式与grep命令
  • 车载卫星通信:让自动驾驶“永不掉线”?
  • Kafka面试精讲 Day 4:Consumer消费者模型与消费组
  • 指针数组与数组指针的区别
  • 【第十一章】Python 队列全方位解析:从基础到实战
  • 鸿蒙NEXT表单选择组件详解:Radio与Checkbox的使用指南
  • 绝了!极空间搭配视频智语,生产力拉满,多平台视频摘要一键搞定
  • browsermobproxy + selenium 获取接口json
  • PLC操作
  • AI + 机器人:当大语言模型赋予机械 “思考能力”,未来工厂将迎来怎样变革?
  • 森赛睿视觉AI:大模型加持,分类更智能
  • 宋红康 JVM 笔记 Day09|方法区
  • 虚拟化技术是什么?电脑Bios中的虚拟化技术怎么开启
  • 【2025ICCV】Vision Transformers 最新研究成果
  • NetCoreKevin-DDD-微服务-WebApi-AI智能体、AISK集成、MCP协议服务、SignalR、Quartz 框架-14-数据模型与持久化
  • YOLO 目标检测:YOLOv4数据增强、CIoU Loss、网络结构、CSP、SPPNet、FPN和PAN
  • 架构选型:为何用对象存储替代HDFS构建现代数据湖
  • Linux之Shell编程(四)函数、数组、正则
  • 小土堆目标检测笔记
  • 【开题答辩全过程】以 基于Spring Boot的房屋租赁系统的设计与实现为例,包含答辩的问题和答案
  • go语言面试之Goroutine 数量控制, GC回收 和任务调度
  • 【Qwen】Qwen3-30B-A3B 模型性能评估指南 + API KEY介绍
  • DAY02:【DL 第一弹】pytorch
  • JS闭包讲解
  • 在 Halo 中导入 Markdown 和 Word 文档
  • openEuler2403编译安装Nginx
  • 【C++】 Vector容器操作全解析
  • springboot:数据校验
  • 人工智能之数学基础:常用的连续型随机变量的分布