Browse Source

fixed crash on xp, use postMessage instead of SendMessage to notify parent the window was closed

git-svn-id: svn://svn.code.sf.net/p/ditto-cp/code/trunk@590 595ec19a-5cb4-439b-94a8-42fb3063c22c
sabrogden 14 years ago
parent
commit
7d768d3a9a
4 changed files with 27 additions and 12 deletions
  1. 9 6
      GlobalClips.cpp
  2. 1 0
      GlobalClips.h
  3. 16 6
      OptionsSheet.cpp
  4. 1 0
      OptionsSheet.h

+ 9 - 6
GlobalClips.cpp

@@ -34,6 +34,7 @@ BEGIN_MESSAGE_MAP(GlobalClips, CDialogEx)
 	ON_WM_SIZE()
 	ON_BN_CLICKED(IDC_BUTTON_REFRESH, &GlobalClips::OnBnClickedButtonRefresh)
 	ON_NOTIFY(NM_DBLCLK, IDC_LIST2, &GlobalClips::OnNMDblclkList2)
+	ON_WM_NCDESTROY()
 END_MESSAGE_MAP()
 
 BOOL GlobalClips::OnInitDialog()
@@ -118,17 +119,14 @@ void GlobalClips::SetNotifyWnd(HWND hWnd)
 
 void GlobalClips::OnClose()
 {
-	::SendMessage(m_hWndParent, WM_GLOBAL_CLIPS_CLOSED, 0, 0);
-
-	CDialogEx::OnClose();
+	DestroyWindow();
 }
 
 void GlobalClips::OnCancel()
 {
-	::SendMessage(m_hWndParent, WM_GLOBAL_CLIPS_CLOSED, 0, 0);
+	DestroyWindow();
 }
 
-
 void GlobalClips::OnSize(UINT nType, int cx, int cy)
 {
 	CDialogEx::OnSize(nType, cx, cy);
@@ -141,7 +139,6 @@ void GlobalClips::OnBnClickedButtonRefresh()
 	LoadItems();
 }
 
-
 void GlobalClips::OnNMDblclkList2(NMHDR *pNMHDR, LRESULT *pResult)
 {
 	LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
@@ -178,3 +175,9 @@ void GlobalClips::OnNMDblclkList2(NMHDR *pNMHDR, LRESULT *pResult)
 	
 	*pResult = 0;
 }
+
+void GlobalClips::OnNcDestroy()
+{
+	CDialogEx::OnNcDestroy();
+	::PostMessage(m_hWndParent, WM_GLOBAL_CLIPS_CLOSED, 0, 0);
+}

+ 1 - 0
GlobalClips.h

@@ -34,4 +34,5 @@ public:
 	afx_msg void OnSize(UINT nType, int cx, int cy);
 	afx_msg void OnBnClickedButtonRefresh();
 	afx_msg void OnNMDblclkList2(NMHDR *pNMHDR, LRESULT *pResult);
+	afx_msg void OnNcDestroy();
 };

+ 16 - 6
OptionsSheet.cpp

@@ -32,12 +32,14 @@ COptionsSheet::COptionsSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectP
 	m_pKeyBoardOptions = NULL;
 	m_pGeneralOptions = NULL;
 	m_pQuickPasteOptions = NULL;
-	m_pUtilites = NULL;
+	m_pCopyBuffers = NULL;
 	m_pStats = NULL;
 	m_pTypes = NULL;
 	m_pAbout = NULL;
 	m_pFriends = NULL;
 	m_pCopyBuffers = NULL;
+	
+	m_pUtilites = NULL;
 	m_hWndParent = NULL;
 
 	EnableStackedTabs(TRUE);
@@ -67,21 +69,24 @@ COptionsSheet::COptionsSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectP
 
 COptionsSheet::~COptionsSheet()
 {
-	delete m_pKeyBoardOptions;
 	delete m_pGeneralOptions;
+	delete m_pKeyBoardOptions;
 	delete m_pQuickPasteOptions;
-	delete m_pUtilites;
+	delete m_pCopyBuffers;
 	delete m_pStats;
 	delete m_pTypes;
-	delete m_pAbout;
+	delete m_pAbout;	
 	delete m_pFriends;
-	delete m_pCopyBuffers;
+
+	delete m_pUtilites;
+	
 }
 
 BEGIN_MESSAGE_MAP(COptionsSheet, CPropertySheet)
 	//{{AFX_MSG_MAP(COptionsSheet)
 		// NOTE - the ClassWizard will add and remove mapping macros here.
 	ON_WM_DESTROY()
+	ON_WM_NCDESTROY()
 	//ON_WM_CLOSE()
 	//}}AFX_MSG_MAP
 END_MESSAGE_MAP()
@@ -91,7 +96,6 @@ END_MESSAGE_MAP()
 
 void COptionsSheet::OnDestroy()
 {
-	::SendMessage(m_hWndParent, WM_OPTIONS_CLOSED, 0, 0);
 	CPropertySheet::OnDestroy();
 }
 
@@ -118,3 +122,9 @@ BOOL COptionsSheet::OnInitDialog()
 
 	return bResult;
 }
+
+void COptionsSheet::OnNcDestroy()
+{
+	CPropertySheet::OnNcDestroy();
+	::PostMessage(m_hWndParent, WM_OPTIONS_CLOSED, 0, 0);
+}

+ 1 - 0
OptionsSheet.h

@@ -59,6 +59,7 @@ protected:
 	//{{AFX_MSG(COptionsSheet)
 		// NOTE - the ClassWizard will add and remove member functions here.
 	afx_msg void OnDestroy();
+	afx_msg void OnNcDestroy();
 	//}}AFX_MSG
 	DECLARE_MESSAGE_MAP()
 };