亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問一下關于VC++6.0編輯的對話框怎樣修改右上角的叉的響應函數?

請問一下關于VC++6.0編輯的對話框怎樣修改右上角的叉的響應函數?

守候你守候我 2021-10-21 19:15:59
我想在對話框退出的時候做一些處理,請問這些處理應該加在哪里?求高手指點!
查看完整描述

2 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

關于提問的“對話框怎樣修改右上角的叉的響應函數”就是WM_CLOSE消息的處理函數OnClose(),fanskydream已經回答的很詳細了,在此不再贅述。
我要補充的是,對話框關閉有很多途徑,僅僅處理WM_CLOSE消息還是不夠的。
本人就曾犯過這種錯誤,在對話框類中new了幾個變量,在OnClose中彈出關閉確認的對話框并進行delete。當用戶不點擊這個“叉”關閉而直接用組合鍵“Alt+F4”關閉時,問題就來了:
首先是沒有了關閉確認的對話框,再次就是沒有delete那幾個在堆上分配的變量造成內存泄漏。

因此,建議樓主重載對話框類的OnDestroy()函數。在這個函數里面進行是否關閉的確認,如果用戶選擇不關閉對話框,就直接返回該函數不調用父類的OnDestroy()即可。
而對話框對象內部動態生成的變量析構在放在PostNcDestroy()函數中進行。

查看完整回答
反對 回復 2021-10-24
?
烙印99

TA貢獻1829條經驗 獲得超13個贊

為你的對話框添加WM_CLOSE的消息處理函數
加了這個函數, 在退出前 會進到這個函數里的,你想做什么都可以在這個函數中做。

也可以手動添加:(如果樓主知道消息響應函數怎么加的話就沒有問題了。)
1。頭文件
afx_msg void OnClose();

2.

BEGIN_MESSAGE_MAP(CBaiduDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_WM_CLOSE()///這個地方一定要寫
END_MESSAGE_MAP()

3.
void CBaiduDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default

CDialog::OnClose();
}



查看完整回答
反對 回復 2021-10-24
  • 2 回答
  • 0 關注
  • 350 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號