비모드형 대화상자 (모달리스, Modaless)만들기
클래스 포인터 변수로 선언하여 힙 영역에 할당하여 showwindow함수로 호출하는 형식과 (비모드형 대화상자) 클래스 변수로 선언해서 바로 .domodal함수로 호출하는 방식이 있다. (모드형 대화상자) 두가지의 차이가 뭘까? 2018.08.10 정차장님께서 설명해주셨다. Modal / Modeless 방식의 차이라고 하신다. 모드형 / 비모드형 대화상자 Modal은 다이얼로그가 생성될 때마다 새로운 다이얼로그를 보여주는 것이다. 다이얼로그 자체의 형식은 같지만, 윈도우에서 새 폴더를 만드는 것처럼 매번 새로운 객체를 생성 후 띄우는 것이다. +다이얼로그를 닫거나 취소시키기 전까지는 다른 작업이 불가능하다. +이 말은 즉 modal 다이얼로그가 화면에 띄어져 있으면 다른 곳 터치가 불가능 하다는 말이다..
[MFC] UI 갱신이 안될때 (ProcessWindowMessage)
void ProcessWindowMessage() { MSG msg; while (::PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE)) { ::SendMessage(msg.hwnd, msg.message, msg.wParam, msg.lParam); } } UI에 무슨 변화가 있고나서 바로 다른 동작이 진행될 때, 일부 UI 들 갱신이 안되는 경우가 존재했다. 화면 갱신해주는 다른 함수들을 사용해도 안되었고, 특이하게 messagebox 를 호출하는 경우에는 UI 갱신이 다 되고 메시지 박스가 호출이 되었다. messagebox 호출은 윈도우 메시지가 다 처리되고 호출되기 때문에 밀린 메시지 작업을 처리해주고 싶었다. -> 해결 완료 ProcessWindowMessag..
[MFC] Text Control 색상 변경
MFC Text Control 색상을 변경해봅시다! 테스트를 하기 위해 Text Control 2개를 추가해주었습니다. Blue (ID: IDC_STATIC_BLUE) Red (ID: IDC_STATIC_RED) 실행해볼까요? - 배경이 왜 초록색인지 궁금하신 분들은 이전 글을 참고해주세요. 2022.12.05 - [배움 - 차근차근 기록하자/[개발] MFC 🔴] - [MFC] 다이얼로그 배경색 변경 [MFC] 다이얼로그 배경색 변경 MFC 다이얼로그의 밋밋한 회색 배경 색상을 변경해봅시다. 1. 변경하려는 다이얼로그의 클래스 마법사를 들어가주세요. (Ctrl + Shift + X) 2. OnPaint 이벤트 핸들러를 추가해줍니다. 3. OnPaint 함수에서 minicode.tistory.com 1. ..
[MFC] 다이얼로그 배경색 변경
MFC 다이얼로그의 밋밋한 회색 배경 색상을 변경해봅시다. 1. 변경하려는 다이얼로그의 클래스 마법사를 들어가주세요. (Ctrl + Shift + X) 2. OnInitDialog 가상 함수를 추가해줍니다. 3. OnInitDialog 함수에서 배경 색상 지정해주기! - 코드가 다르더라고 빨간 부분만 입력해주면 됩니다. - 다이얼로그가 FormView를 상속한 경우에는 SetBackgroundColor 함수 호출이 안되는 것으로 알고 있습니다. FormView 형식 다이얼로그에서 배경색상을 변경하는 방식은 OnPaint를 이용해 구현해야 합니다. (글 올릴 예정 입니다^^) 실행해볼까요? 다이얼로그 배경 색상이 잘 바뀌었네요~~ 봐주셔서 감사합니다.
[MFC] 리스트 컨트롤 관련 코드 정리 List Control
* list control 의 컨트롤 변수 : m_List 리스트 초기화 (모든 항목 지우기) m_List.DeleteAllItems(); while (m_List.DeleteColumn(0)); 리스트 열 너비 자동 조절 for (int i = 0; i GetItemCount(); ++i) m_List.SetColumnWidth(i, LVSCW_AUTOSIZE_USEHEADER); 리스트 열 너비 수동 조절 CRect rectParam; m_List.GetWindowRect(&rectParam); m_List.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); m_List.InsertColumn(0, _..
[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; }