這應該是個老問題,我來稍微總結下:(我剛剛接觸windows程式設計希望大家多多指點)
1.上來來個最魯莽的.
直接通過exit(0),exitprocess(0);//不好的用法
猜測資源得不到**
原因如下:
2.
向父視窗傳送wm_close訊息,然後自己關閉自己的視窗。
獲取將父視窗的控制代碼直接傳給子視窗,然後子視窗可以直接關閉父視窗.
示例**如下:
父視窗類的定義:
// cmfc_biometic_authenticationdlg 對話方塊
class cmfc_biometic_authenticationdlg : public cdialogex
; protected:
virtual void dodataexchange(cdataexchange* pdx); // ddx/ddv 支援
// 實現
protected:
hicon m_hicon;
// 生成的訊息對映函式
virtual bool oninitdialog();
afx_msg void onsyscommand(uint nid, lparam lparam);
afx_msg void onpaint();
afx_msg hcursor onquerydragicon();
declare_message_map()
public:
afx_msg void onbnclickedok();
afx_msg void onstnclickedpasswordtipsstatic();
afx_msg void onstnclickedusernamestatic();
afx_msg void onenchangeedit3();
afx_msg void onenchangefingertipsedit();
private:
cstring m_username;
private:
cstring m_password;
private:
cstring m_message_return;
public:
afx_msg void onbnclickedokbutton();
afx_msg void onstnclickedpassmessagestatic();
afx_msg void onbnclickedinstructionlog();
private:
cuserdialog m_userlog;
public:
afx_msg void onclose();
};
子視窗類的定義
class cuserdialog : public cdialogex
;protected:
virtual void dodataexchange(cdataexchange* pdx); // ddx/ddv 支援
declare_message_map()
public:
afx_msg void onbnclickeduserexitbutton();
afx_msg void onbnclickedok();
afx_msg void onclose();
private:
cwnd *m_pparentwnd;
};
cwnd *m_pparentwnd; 子視窗類中用來儲存父視窗的指標
重要步驟:傳遞指標到子視窗(通過建構函式):
cuserdialog::cuserdialog(cwnd* pparent /*=null*/)
: cdialogex(cuserdialog::idd, pparent), m_pparentwnd(pparent)
關閉的過程通過 ::sendmessage(...);
void cuserdialog::onclose()
3.另有網友建議做法,
子視窗關閉通知父視窗
子視窗 public partial class formsub form public delegate void updatedatadelegate 宣告乙個委託 public updatedatadelegate updatetextbox 定義委託 public formsub initi...
swing 子視窗關閉時重新整理父視窗
基本原理是這樣的 1 在父類中定義乙個重新整理父視窗內容的方法 2 在父視窗中開啟子視窗時,將父視窗的例項也傳給子視窗 3 子類中建立乙個父類例項的屬性,在子類在構造方法中用此屬性接受傳過來的父類例項 4 子視窗關閉時,呼叫父類中的方法,實現對父視窗內容的重新整理。說明 本方法不包括從子視窗向父視窗...
WPF 關閉子視窗時重新整理父視窗
關閉子視窗後子視窗進行某個操作後重新整理父視窗 父視窗 彈出視窗 private void mifuncset click object sender,routedeventargs e 設定視窗關閉時執行的方法 void funcsettingclosed 子視窗 定義委託 public dele...