.


:




:

































 

 

 

 





. -, . ij Find, , , Find. -, OnCancel CDialog, , . , , . ? . , ( 1), (communicating state).

. , -, . C++ , , . , ' CMyDialog. , , . .

1. ( ). , Find. , , .

 

#define WM_FINDDATA (WM + 1)

 

, ' , 0 WM_USER - 1 , , , , WM_USER. , , . г , WM_USER 0x7FFF , , , , . ֳ , , , BUTTON, EDIT LISTBOX. , .

, , WM_APP OXBFFF. Microsoft , . , : 1 OXFFFF , OXFFFF Windows.

2. . , Visual Studio . . afx_msg , long WPARAM ( UINT) LPARAM ( LONG):

 

afx_msg long OnFindData(UINT wParam, LONG IParam);

 

, afx_msg, , Visual C++ , . , Visual C++.

, . WM_FINDDATA, , OnFindData ( : CMyView, CView).

 

BEGIN_MESSAGE__MAP (CMyView, CView)

ON__MESSAGE(WM_FINDDATA, OnFindData)

END_MESSAGE_MAP()

 

OnFindData:

 

long CMyView::OnFindData(UINT wParam, LONG IParam) {

//

// wParam / IParam.

//ϳ .,.

return 0L;

}

 

, . , this. , : .

, , MFC . , , . ' GetParent. , . : ' MFC , . , this , ' GetParent , (, , ).

ϳ . , . this . , , .

, , , , , :

 

//

CFindDlg(CWnd* pParent = NULL);

//

CFindDlg(CWnd* pParent);

 

GetParent :

 

void CFindDlg::OnBnClickedOk ()

{

if (UpdateDataO)

{

CWnd* pParent = GetParent ();

ASSERT(pParent);

if (pParent) pParent->SendMessage(WM_FINDDATA, 0, 0);

}

}

}

 

, LPARAM WPARAM , . , ( LPARAM WPARAM), , ( ), .

' , , : " '?". ³ (scope) . , : SendMessage PostMessage. SendMessage , , , . , , SendMessage, , . PostMessage, , : . , , , , , . , .

'? SendMessage , . , , , ', . , ' , . PostMessage . , ' .

, . , - . , . nO . Find WM_FINDDATA , , Close, WM__DIALOGCLOSE. , .

 

long CMyView::OnpialogClose(UINT wParam, LONG IParam)

{

// -,

//

m_pDlg->DestroyWindow();

return 0L;

}

 

, .

䳿 nO OnCancel. . , , . , . , , Windows IDOK IDCANCEL, . , , WM_DlALOGCLOSE. :

 

//

pParent->PostMessage(WM_DIALOGCLOSE, IDOK);

// CANCEL

pParent->PostMessage(WM_DIALOGCLOSE, IDCANCEL)/

 

³ WM_DIALOGCLOSE :

 

long CMyView.-.OnDialogClose (UINT wParam, LONG IParam) { if (wParam == IDOK)

else if (wParam == IDCLOSE)

else ASSERT(FALSE); //

p01g->DestroyWindow(); return OL;

)

 





:


: 2016-11-12; !; : 448 |


:

:

,
==> ...

1755 - | 1687 -


© 2015-2024 lektsii.org - -

: 0.018 .