<C++> MFC自動關閉對話框(MessageBoxTimeout)

MFC自動關閉對話框(MessageBoxTimeout)

記錄一下今天在界面開發中的解決方案。自動關閉對話框有兩種方案:

1.使用定時器實現延遲關閉(DeepSeek方案)

提示框顯示幾秒后自動關閉,可以使用 SetTimer + KillTimer:

// 在對話框類中添加:
void CMyDialog::OnBnClickedOk()
{YourFunction();  // 執行你的邏輯// 彈出提示框MessageBox(_T("操作完成,3秒后自動關閉"), _T("提示"), MB_OK | MB_ICONINFORMATION);// 設置定時器(3秒后關閉)SetTimer(1, 3000, NULL);  // 3000ms = 3秒
}// 處理 WM_TIMER 事件
void CMyDialog::OnTimer(UINT_PTR nIDEvent)
{if (nIDEvent == 1){KillTimer(1);      // 停止定時器EndDialog(IDOK);   // 關閉對話框}CDialogEx::OnTimer(nIDEvent);
}

2.使用Windows API:MessageBoxTimeout

方案一的確可以解決項目上的問題,但是目前的界面開發中已經使用了一個定時器進行主對話框的關閉,因此,我想找一個簡單便捷的方式。該API是由user32.dll導出。
建立一個頭文件MessageBoxTimeout.h,或者直接將一下代碼添加到需要使用的cpp文件中。

extern "C"
{int WINAPI MessageBoxTimeoutA(IN HWND hWnd, IN LPCSTR lpText, IN LPCSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);int WINAPI MessageBoxTimeoutW(IN HWND hWnd, IN LPCWSTR lpText, IN LPCWSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
}#ifdef UNICODE
#define MessageBoxTimeout MessageBoxTimeoutW
#else
#define MessageBoxTimeout MessageBoxTimeoutA
#endif

使用案例:

// 設置1000ms自動關閉該提示對話框
MessageBoxTimeout(NULL, _T("制作完成!"), _T("提示"), MB_ICONINFORMATION, 0, 1000);

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83122.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83122.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83122.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

多語言支持的常見設計方案

在 Java 項目中實現**多語言(國際化,i18n)**功能,是很多企業級應用支持不同地區和語言用戶的基礎需求。以下是 Java 中實現多語言支持的常見設計方案: 一、常見多語言設計方案 1. 使用 ResourceBundle 讀取 propertie…

vuex基本介紹

Vuex是Vue.js應用程序中專門用于狀態管理的庫。以下是其基本介紹: 概念 Vuex采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。 特點 - 集中化管理:將應用的狀態集中存儲在一個單一的狀態…

Android開發-在應用之間共享數據

在Android系統中,應用之間的隔離機制(沙箱機制)保障了系統的安全性與穩定性。然而,在實際開發中,我們經常需要實現跨應用的數據共享,例如: 從一個應用向另一個應用傳遞用戶信息;多個…

深度解析 JWT:從原理到實戰的全場景解決方案(附永久 Token 設計與集成系統實踐)

摘要 本文結合 JWT 官方標準(RFC 7519)與生產級實踐,全面解析 JSON Web Token 的核心機制、安全規范及 Java 生態最佳實現。涵蓋 JJWT 工具類優化、Auth0/Nimbus 替代方案對比、永久 Token 設計(滿足集成系統長期調用需求&#x…

[特殊字符]Meilisearch:AI驅動的現代搜索引擎

前言 大家好,我是MAI麥造! 上文介紹一了Manticore Search 這款輕量級的搜索引擎,這次又有了新的發現!傳送門: Elasticsearch太重?它的超輕量的替代品找到了! 這是一個讓我超級興奮的AI搜索引…

【Linux C/C++開發】輕量級關系型數據庫SQLite開發(包含性能測試代碼)

前言 之前的文件分享過基于內存的STL緩存、環形緩沖區,以及基于文件的隊列緩存mqueue、hash存儲、向量庫annoy存儲,這兩種屬于比較原始且高效的方式。 那么,有沒有高級且高效的方式呢。有的,從數據角度上看,&#xff0…

首個專業AI設計Agent發布-Lovart

Lovart是什么 Lovart 是為設計師打造的世界上首個專業設計 Agent。Lovart 能像專業設計師一樣思考和執行設計任務,提供高水平的設計方案。基于自然語言交互,用戶能快速調整布局、顏色和構圖。Lovart 支持從創意拆解到專業交付的全鏈路設計,單…

關于Python 實現接口安全防護:限流、熔斷降級與認證授權的深度實踐

作為一名IT從業者,就自己的職業經歷,我一直很注重系統安全的。從桌面時代就對此很感興趣,后來隨著技術的更新迭代,系統安全衍生出來了網絡安全。維度更大,范圍更廣。尤其在數字化浪潮席卷全球的今天,互聯網…

onGAU:簡化的生成式 AI UI界面,一個非常簡單的 AI 圖像生成器 UI 界面,使用 Dear PyGui 和 Diffusers 構建。

?一、軟件介紹 文末提供程序和源碼下載 onGAU:簡化的生成式 AI UI界面開源程序,一個非常簡單的 AI 圖像生成器 UI 界面,使用 Dear PyGui 和 Diffusers 構建。 二、Installation 安裝 文末下載后解壓縮 Run install.py with python to setup…

南方科技大學Science! 自由基不對稱催化新突破 | 樂研試劑

近日,南方科技大學劉心元教授團隊聯合浙江大學洪鑫教授團隊在自由基不對稱催化領域取得新進展。課題組開發了一系列大位阻陰離子 N,N,P-配體,用于銅催化未活化外消旋仲烷基碘與亞砜亞胺的不對稱胺化反應。該反應表現出廣泛的底物兼容性,涵蓋具…

Milvus 視角看主流嵌入式模型(Embeddings)

嵌入是一種機器學習概念,用于將數據映射到高維空間,其中語義相似的數據被緊密排列在一起。嵌入模型通常是 BERT 或其他 Transformer 系列的深度神經網絡,它能夠有效地用一系列數字(稱為向量)來表示文本、圖像和其他數據…

【MySQL】牛客網sql語句簡單例題,sql入門

目錄 一、基礎查詢 1、查詢所有列 2、 查詢多列 二、簡單處理查詢結果 1、查詢結果去重 2、查詢結果限制返回列數 3、將查詢后的列重新命名 三、條件查詢之基礎排序 1、查找后排序 2、 查找后多列排序 3、查找后降序排列 四、條件查詢之基礎操作符 1、查找學校是北…

Linux云計算訓練營筆記day06(Windows DOS下的常用命令 及 HTML)

windows dos命令行 切換盤符 d: 查看文件夾下的內容 dir 創建文件夾 md/mkdir gongli 進入文件夾 cd gongli 往回退一層 cd .. 清屏 cls 歷史命令(用鍵盤的上下鍵) 創建一個空的文件 echo.>a.txt 寫入內容到文件中 echo hello world > b.txt 刪除文件 del a.txt 查…

如何開啟或關閉WordPress的自動更新功能

WordPress是一個開源軟件,您可以從他們的官方網站免費下載。但是,要啟動WordPress站點,您需要安裝一個主題,以幫助為您的內容創建特定布局。此外,您可能還需要安裝一些插件來添加其他功能。 當您必須管理所有這些東西…

SpringSecurity當中的CSRF防范詳解

CSRF防范 什么是CSER 以下是基于 CSRF 攻擊過程的 順序圖 及詳細解釋,結合多個技術文檔中的攻擊流程: CSRF 攻擊順序圖 #mermaid-svg-FqfMBQr8DsGRoY2C {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#m…

給 DBGridEh 增加勾選用的檢查框 CheckBox

需求 Delphi 的 DBGrid 通過 DataSource 綁定到一個 DataSet 顯示數據表里面的 N 多條記錄。如果我想給每條記錄加一個 CheckBox 讓用戶去勾選,該怎么做? 以下描述,使用的 DBGrid 是 DBGrieEh。 Delphi 自帶的 DBGrid 要加 CheckBox 比較麻…

WordPress 和 GPL – 您需要了解的一切

如果您使用 WordPress,GPL 對您來說應該很重要,您也應該了解它。查看有關 WordPress 和 GPL 的最全面指南。 您可能聽說過 GPL(通常被稱為 WordPress 的權利法案),但很可能并不完全了解它。這是有道理的–這是一個復雜…

力扣144題:二叉樹的前序遍歷(遞歸)

小學生一枚,自學信奧中,沒參加培訓機構,所以命名不規范、代碼不優美是在所難免的,歡迎指正。 標簽: 二叉樹、前序遍歷、遞歸 語言: C 題目: 給你二叉樹的根節點root,返回它節點值…

python:一個代理流量監控的媒體文件下載腳本

前言 一個mitmproxy代理服務應用,作用是監聽系統流量,并自動下載可能的video媒體文件到本地。 如果你沒有安裝mitmproxy或沒有做完準備工作,請參考我的這篇文章: python:mitmproxy代理服務搭建-CSDN博客 文件架構目錄…

SAP Business One(B1)打開自定義對象報錯【Failed to initialize document numbering:】

業務場景: 新版本的客戶端,打開已經注冊的自定義單據類型的表的時候,報錯【Failed to initialize document numbering:】。 但是注冊的自定義主數據類型的表,不會有問題。 解決方案: 打開【管理-系統初始化-常規設置…