본문 바로가기

mfc5

[MFC] Static Text Control (문자&배경색) 링크 : http://blog.naver.com/halflove?Redirect=Log&logNo=40087432232 WM_CTLCOLOR 메세지는 자식컨트롤을 그리려고 할 때 호출되는 윈도우메세지 입니다. 그래서 부모 클래스에서 WM_CTLCOLOR 메세지 발생 할 경우 자식컨트롤 중 Button, DialogBox, Edit, ListBox, MessageBox, ScrollBar, Static Control에 대해서 배경 및 글자색 등을 제어 할 수 있습니다. 그러면 이 글의 본론인 Static Text 컨트롤의 배경색이나 글씨색을 바꿔봅시다. 먼저 리소스 뷰 탭에서 dialog를 띄운 후 메세지 탭에서 WM_CTLCOLOR 메세지에 대한 함수를 추가 합니다. 글로 설명이 부족하신 분은 아래의 붉.. 2011. 1. 4.
더블버퍼링, 트리플버퍼링 (CPaint, CDC 클래스) 발췌 : 열혈강의 Visual C++ 2008 MFC 윈도우 프로그래밍 p608 윈도우의 깜빡임을 제거하는 최선의 방법은 더블 버퍼링(Double Buffering)입니다. DC에 직접 출력하는 것이 아니라, 화면 DC와 호환되는 메모리 DC(버퍼DC)를 만들어서 모든 그리기 작업을 수행한 후 , 메모리 DC의 내용을 화면 DC로 복사하는 기법입니다. 아래 코드는 트리플버퍼링을 사용하였고, 배경의 색을 설정하고 있다. memSuiteDC는 실제 화면인 DC에 그려질 메모리DC이다. memDC는 memSuiteDC에 그려질 메모리DC이다. CBufferingDlg::CBufferingDlg() { m_pBitmap = new CBitmap(); m_pBitmap->LoadBitmap(IDB_BITMAP1).. 2010. 12. 24.
MFC 그림으로 버튼, 스크롤, 리스트 만들기 - 더블버퍼링 & UML 문서화 기법 링크 : http://blog.naver.com/dolicom?Redirect=Log&logNo=10071259662 2010. 11. 26.
쓰레드 - Thread - 귀가 닳도록 들어온 워커스레드와 UI스레드. 그리고 스레드와 관련된 숱한 의혹과 혼란은 간혹 프로그래밍 할 맛을 뚝 떨어뜨리기도 한다. 그러나 세상에 좋은걸 쉽게 얻을수 있는게 어디 있으랴. 보다 좋은 성능에 보다 매끄러운 결과물을 만들기 위해서는 피해갈수 없는 길이 스레드다. 그만큼 잘 쓰면 프로그램을 빛나게 하지만 잘못쓰면 그냥 망한다. 그리고 알아야 할것이 한두가지가 아니다. 이렇게 복합적인 지식을 요구하기 때문에 스레드가 어렵게 느껴질수 있다. 적어도 멀티스레드로 들어가기 시작하면... 그래서 기초책에서 설명하는 그렇고 그런 진부한 내용은 다 집어치우고, 또 잘 설명해 주지도 않는 UI 스레드도 제대로 알아볼겸 MFC에서 스레드가 어떻게 동작하는지 MFC 소스코드를 살펴보고 멀.. 2010. 10. 27.
쓰레드에서 Main핸들 얻기 아래와 같은 방법은 되도록 사용하지 않는게 낫다. Test프로젝트를 생성 할 경우를 예로 들겠다. - 쓰레드가 아닐 경우 TestDlg* pTestDlg = (TestDlg*)AfxGetMainWnd(); - 쓰레드일 경우 TestDlg* pTestDlg = (TestDlg*)theApp.m_pMainWnd; 쓰레드에서 AfxGetMainWnd()를 호출하면 맴버변수들의 값이 NULL로 되어있다. 하지만 theApp.m_pMainWnd로 접근하면 맴버변수의 주소로 접근한다. 이 방법은 되도록 사용하지 않는게 낫다. 쓰레드 내에서 전역함수를 호출하거나 전역변수를 접근하면 문제가 발생 할 수도 있기 때문이다. "되도록 파라미터로 넘겨서 사용하도록 한다" 2010. 10. 27.