본문 바로가기

MDI 다른 형식의 Child 만들기 MDI 의 꿈을 버리지 못하고 몇 개월째 해야지~하면서 찾아만 다녔던 부분이다.MDI 에서 기본View는 내가 지정을 할 수 있지만 다른 형식의 View, 그러니까 예를 들어서 일반 View가 기본인데 FormView가 필요하다던지 그 반대가 되던지 아니면 머..스크롤 뷰라던지 등 기본과 다른 View를 사용해서 Child를 띄우는 방법이다. 솔직히 그냥 DoModel 이나 Modeless 로 띄워도 되긴 하지만 일단 간지가 나지 않는다 -_- MDI 의 최대 장점은 독립적인 Frame 구조이기 때문이다. 독립적인 Frame이 지원이 되는데 왜 굳이 저렇게 쓴단 말인가? 그럴빠엔 SDI로 설계를 하는게 더 편하다. 서론이 길었지만 매우 간단하더라 (이전엔 해도 않됐었다. 아무리 많은 포스팅을 봐도 해보면.. 더보기
구조체 정의와 동시에 초기화 일반적으로 구조체는 멤버함수를 가지지 않기 때문에 생성자라는 개념이 없다. 실제 책을 찾아봐도 이러한 내용은 다루지 않더라. 그러나 생성자가 존재는 하더만 ?! 일단 깊게 파진 못하고 잊어버릴까 싶어 우선 포스팅 바로 .... typedef struct TESTSTR{int a;int b;}TESTSTR; 보통 위와 같이 사용하여 선언시 다음과 같이 초기화 한다. TESTSTR teststr = {10,11}; 이것도 머 나쁘진 않지만 멤버변수가 많다면 이짓도 여간 힘든일이 아니다. 그리고 할때마다 memset 또는 ZeroMemory 함수를 쓰는거도 귀찬고 잊어버려 쓰레기 값이 들어가는 경우가 허다하다. 그래서 생성자 같은 함수가 있으면 편리한 것!! 젠장...있었구나... 선언시 다음과 같이 해주면 .. 더보기
이동식/HD/SD 카드등 외부 메모리 삽입/제거 이벤트 감지 USB/SD 카드 가 컴퓨터에서 인식되면 이게 이동식이든 HD 든 상관없이 시스템 콜을 받게 됩니다. MFC 에서 DefWindowProc() 함수에서 메시지가 날라오는군요. DefWindowProc 함수는 MFC 메시지 함수 입니다. #include LRESULT CMyProject::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam){ // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다. if(message == WM_DEVICECHANGE){ UINT event = (UINT)wParam; switch(event ){ case DBT_DEVICEARRIVAL :// 이동식 디스크 삽입 SetDlgItemText(IDC_S.. 더보기