비모드형 대화상자 (모달리스, Modaless)만들기
클래스 포인터 변수로 선언하여 힙 영역에 할당하여 showwindow함수로 호출하는 형식과 (비모드형 대화상자) 클래스 변수로 선언해서 바로 .domodal함수로 호출하는 방식이 있다. (모드형 대화상자) 두가지의 차이가 뭘까? 2018.08.10 정차장님께서 설명해주셨다. Modal / Modeless 방식의 차이라고 하신다. 모드형 / 비모드형 대화상자 Modal은 다이얼로그가 생성될 때마다 새로운 다이얼로그를 보여주는 것이다. 다이얼로그 자체의 형식은 같지만, 윈도우에서 새 폴더를 만드는 것처럼 매번 새로운 객체를 생성 후 띄우는 것이다. +다이얼로그를 닫거나 취소시키기 전까지는 다른 작업이 불가능하다. +이 말은 즉 modal 다이얼로그가 화면에 띄어져 있으면 다른 곳 터치가 불가능 하다는 말이다..
[MFC] 리소스 에러 : RC2104 undefined keyword or key name : @ /해결하기/원인/RC2104
에러 발생 모습 에러 발생 시점 사용하지 않는 컨트롤을 정리하기 위해 IDS_TEACH_POS61 ID를 resource.h 파일에서 지웠더니 발생. 에러 발생 원인 지운 리소스 ID와 관련된 코드가 지워지지 않고 남아있어 발생함. 에러 조치 방법 코드 편집 버튼 클릭 아래 보이는 오류 내용 클릭 지웠던 ID관련 내용 삭제 (1) (2) 조치 완료
[MFC] 프로그램 작업표시줄 아이콘 숨기기
MainDlg 클래스의 OnInitDialog에 아래와 같은 코드를 삽입한다. HWND hWnd = AfxGetMainWnd()->GetSafeHwnd(); long style = GetWindowLong(hWnd, GWL_EXSTYLE); style &= ~(WS_VISIBLE); style |= WS_EX_TOOLWINDOW; style &= ~(WS_EX_APPWINDOW); ::ShowWindow(hWnd, SW_HIDE); SetWindowLong(hWnd, GWL_EXSTYLE, style); ::ShowWindow(hWnd, SW_SHOW); 코드 삽입 전 코드 삽입 후
[MFC] MFC 타이머 CTimerCheck
bool CSample::bMotorWait4Done(int nTimeOutMsec, BYTE iSlaveNo) { CTimerCheck MesTimer; MesTimer.SetCheckTime(nTimeOutMsec); MesTimer.StartTimer(); while (MOTIONING_CHECK(iSlaveNo) != true) { Sleep(1); if (MesTimer.IsTimeOver()) { return false;//Time Out시 return false } } return true; }
[MFC] Main Dialog 포인터로 참고하기
다이얼로그 기반의 프로젝트로 작업을 하다보면 사용자가 임의로 여러가지 클래스들을 만들어 사용하는 경우가 있다. 제너릭으로 만들든 CView, CFormView등의 MFC에 정의되있는 클래스의 상속을 받아서 만들든 다양한 형태의 클래스가 만들어 질 것이다. 보통 사용자가 만든 클래스들은 메인 다이얼로그 클래스에 헤더파일을 인클루드하고 인스턴스로 만들어져 사용이 될텐데 경우에 따라 사용자가 만든 클래스에서 메인 다이얼로그의 변수나 함수들을 사용해야 할 경우가 생기게 된다. 이런 경우 메인 다이얼로그의 포인터를 얻는 방법에는 다음의 두 가지가 있다. 메인 다이얼로그 클래스 : CMainDlg 임의로 생성된 클래스 : CChild 라고 했을 때, 1. CMainDlg.h를 인클루드하고 다음과 같이 멤버변수로 등..
[MFC] Domodal Dialog 강제종료
다른 스레드에서 생성한 다이얼로그를 강제로 죽이려면?? pDlg->DestroyWindow() CloseWindow() GetSafeHwnd(), WM_CLOSE, NULL, NULL) 종료되지 않습니다. 모달 다이얼로그를 종료시키는 방법은 EndDialog() 함수를 호출하는 방법뿐입니다. pDlg->EndDialog(IDOK); 혹은 pDlg->EndDialog(IDCALCEL); 을 호출하면 해당 다이얼로그는 종료가됩니다. 출처: