C++/MFC
MFC Dialog 로드 이벤트
Dongmin Jang
2021. 1. 25. 17:58
OnPaint 함수를 다이얼로그가 로드되었을때 메시지 처리하기 위해 C#의 Window Loaded 같은 이벤트 처리가 필요,
Dialog 로드시 이벤트 처리를 진행.
아래 url을 참고
MFC - execute code right after dialog is shown (.NET equivalent of Form.Shown)
I'm doing some small changes to C++ MFC project. I'm .NET developer so Windows programming is new to me. I need to launch some method right after CDialog is completely shown (painted) for the firs...
stackoverflow.com
// 사용한 코드
// WM_PAINT 메시지
void MyCDialog::OnWindowPosChanged(WINDOWPOS *wndpos)
{
__super::OnWindowPosChanged(wndpos);
if (!mDialogShown && (wndpos->flags & SWP_SHOWWINDOW)) {
PostMessage(WM_PAINT);
mDialogShown = true;
}
}
// 참고한 코드
ON_WM_WINDOWPOSCHANGED()
ON_MESSAGE(MyCDialog::MY_USER_MSG, OnDialogShown)
void MyCDialog::OnWindowPosChanged(WINDOWPOS *wndpos)
{
__super::OnWindowPosChanged(wndpos);
if (!mDialogShown && (wndpos->flags & SWP_SHOWWINDOW)) {
PostMessage(MY_USER_MSG);
mDialogShown = true;
}
}
LRESULT MyCDialog::OnDialogShown(WPARAM, LPARAM)
{
...
}
-- 추가
2021/01/26 그럼 WM_CREATE 를 프로시저에서 체크하는거랑 뭐가 다른지 순서? 등등 장단점 고민해보기