본문 바로가기

MFC2

VC6의 CHtmlView 버그 VC6의 CHtmlView에는 버그가 있어서 텍스트 입력에서 Tab, Del, Enter 키등이 동작하지 않는다. VC7이상의 CHtmlView에서는 버그가 수정되었는데 PreTranslateMessage()를 오버라이딩함으로 해결하였다. VC6에서 해당 버그를 수정하려면 CHtmlView를 상속해서 VC7의 CHtmlView::PreTranslateMessage()로 PreTranslateMessage()를 오버라이딩하면 된다. BOOL CHtmlView::PreTranslateMessage(MSG* pMsg) { ASSERT(pMsg != NULL); ASSERT_VALID(this); ASSERT(m_hWnd != NULL); // allow tooltip messages to be filtered.. 2007. 9. 5.
MFC의 CPropertySheet, CPropertyPage에서 디자인 깨지는 문제 MFC의 CPropertySheet와 CPropertyPage는 탭 컨트롤 기반의 환경설정이나 위자드 다이얼로그를 만들 때 많이 사용하는 클래스들이다. 그런데 리소스 에디터에서 디자인한 다이얼로그를 CPropertyPage로 만들어서 사용하다 보면 디자인이 변경되어서 깨지는 문제가 발생하곤 한다. 특히 한글 윈도우에서 디자인한 다이얼로그를 영문 윈도우(물론 랭귀지팩이 깔린)에서 보면 거의 깨져 보인다. 원인은 CPropertySheet에서 다이얼로그 템플릿을 초기화할 때 CPropertyPage의 폰트를 CPropertySheet의 폰트와 같은 폰트로 변경하면서 디자인이 바뀌기 때문이다. 이것을 막으려면 CPropertySheet를 상속 받아서 BuildPropPageArray()를 오버라이딩한 다음 폰.. 2007. 2. 28.