mfc_Dlg_add_2 - 8BitsCoding/RobotMentor GitHub Wiki
(์ฐธ๊ณ ) ์๋ก์ด ๋ํ์์๋ฅผ ์ถ๊ฐํ ๋ Visible ์์ฑ์ ํญ์ True๋ก ๋ณ๊ฒฝ!
๋ ๊ฐ์ ๋ํ์์๋ฅผ ๋ง๋ค๊ณ ์๋ํธ ๋ฐ์ค๋ฅผ ํตํ์ฌ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ณด์.
// Dlg.h
public:
afx_msg void OnBnClickedShowButton();
NewDlg * mp_new_dlg = NULL;
MyView * mp_my_view = NULL;
afx_msg void OnDestroy();
protected:
afx_msg LRESULT On27000(WPARAM wParam, LPARAM lParam);
public:
afx_msg void OnBnClickedSetButton();
protected:
afx_msg LRESULT On27001(WPARAM wParam, LPARAM lParam);
};
void CMFCApplication7Dlg::OnBnClickedShowButton()
{
if (mp_new_dlg == NULL) {
mp_new_dlg = new NewDlg;
mp_new_dlg->Create(IDD_NEW_DLG, this);
}
}
void CMFCApplication7Dlg::OnDestroy()
{
CDialogEx::OnDestroy();
if (mp_new_dlg != NULL) {
On27000(0, 0);
//mp_new_dlg->DestroyWindow();
//delete mp_new_dlg;
}
mp_my_view->DestroyWindow();
delete mp_my_view;
}
์ฌ์ฉ์ ์ง์ ๋ฉ์์ง ์ถ๊ฐํ๊ธฐ
afx_msg LRESULT CMFCApplication7Dlg::On27000(WPARAM wParam, LPARAM lParam)
{
mp_new_dlg->DestroyWindow();
delete mp_new_dlg;
mp_new_dlg = NULL;
return 0;
}
void NewDlg::OnBnClickedOk()
{
GetParent()->PostMessageW(27000);
}
void NewDlg::OnBnClickedSetButton()
{
int num = GetDlgItemInt(IDC_NUM_EDIT);
//GetParent()->SetDlgItemInt(IDC_NUM_EDIT, num);
GetParent()->PostMessageW(27001, num);
}
void CMFCApplication7Dlg::OnBnClickedSetButton()
{
if (mp_new_dlg != NULL) {
int num = GetDlgItemInt(IDC_NUM_EDIT);
mp_new_dlg->SetDlgItemInt(IDC_NUM_EDIT, num);
}
}
afx_msg LRESULT CMFCApplication7Dlg::On27001(WPARAM wParam, LPARAM lParam)
{
// (์ฐธ๊ณ ) WPARAM์ UINT์ด๊ธฐ์ ํ๋ณํํด์ผํจ.
int num = (int)wParam;
if (num < 0) num = num * (-1);
SetDlgItemInt(IDC_NUM_EDIT, num);
return 0;
}
Dlg ์ค View๋ฅผ ์ถํ๊ฐ์ฌ Modaless ๋ค์ด์ผ๋ก๊ทธ๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
BOOL MyView::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: ์ฌ๊ธฐ์ ์ถ๊ฐ ์ด๊ธฐํ ์์
์ ์ถ๊ฐํฉ๋๋ค.
SetBackgroundColor(RGB(0, 100, 255));
return TRUE; // return TRUE unless you set the focus to a control
// ์์ธ: OCX ์์ฑ ํ์ด์ง๋ FALSE๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค.
}