본문 바로가기
반응형

C & C++/MFC 컨트롤199

Static Control 의 배경을 투명하게 만들기 체크박스를 투명하게 하기 위해서는 OnCtrlColor 을 재정의해서 사용하면 된다. HBRUSH CTest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 여기서 DC의 특성을 변경합니다. int nRet = pWnd->GetDlgCtrlID(); if (nRet == IDC_CHECK_TIME_LIMIT) { pDC->SetBkMode(TRANSPARENT); hbr = (HBRUSH)GetStockObject(NULL_BRUSH); } // TODO: 기본값이 적당하지 않으면 다른 브러시를 반환합니다. return hbr; } 하지만 이렇게.. 2011. 10. 25.
Static 에 텍스트를 쓸때 겹쳐서 나올 경우 if(pWnd->GetDlgCtrlID() == IDC_STATIC_DOWNLOAD) { pDC->SetBkColor(RGB(255,255,255)); pDC->SetBkMode(TRANSPARENT); hbr = (HBRUSH)GetStockObject(NULL_BRUSH); }위와 같이 처리해 주면, Static Control 에 배경을 투명하게 만들어 줄 수 있다. 하지만, 연속적으로 Static 에 값을 쓰게 되면 아래와같이 그림이 겹치게 되는데. pDC->SetBkMode(TRANSPARENT); // 이것을 pDC->SetBkMode(OPAQUE); // 바꿔준다 이렇게 처리해주면, 아래와 같이 겹치지 않게 된다. 2011. 10. 25.
마우스 드레그 하여 다이얼 로그 이동 //header afx_msg void OnLButtonDown(UINT nFlags, CPoint point); //cpp BEGIN_MESSAGE_MAP(CTest, CDialog) ON_WM_LBUTTONDOWN() END_MESSAGE_MAP() void CTest::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다. SendMessage(WM_NCLBUTTONDOWN, HTCAPTION, 0); CDialog::OnLButtonDown(nFlags, point); } 2011. 10. 25.
다이얼로그에 배경입히기 Adding the class to your project There are three steps you have to follow before you can use this class in your project. Add BDialog.cpp and BDialog.h to your project Replace all instances of CDialog with CBDialog. Do this to both the cpp and h file of your dialog class. For example if your project is called Test, make the changes to TestDlg.cpp and TestDlg.h. You'll have to use Find and Replace.. 2011. 10. 19.
MFC 모달 다이알로그를 숨김 상태로 시작하는 방법 1. Introduction MFC를 사용해서 트레이 기반으로 동작하는 다이알로그 베이스드의 프로그램을 개발해 본 사람이라면 누구나 한번쯤은 이런 생각을 해 보았을것이다. 이놈의 모달 왜 시작하기만 하면 나타나지? ShowWindow API를 사용해서 SW_HIDE를 몇 군데 넣어보아도 뾰족한 수가 없었을 것이다. 최대한 노력을 해 보았자, 화면에 나타났다 금새 사라지는게 전부다. 그럼 왜 이런 현상이 나타날까? 그건 MFC 내부적으로 DoModal안에서 다이알로그를 Show하게 만들기 때문이다. 그렇다면 방법은 없을까? 불행하게도 일반적인 ShowWindow를 사용한 방법은 없다. 이 문서에서는 문제를 해결하는 다른 방법을 제시하고 있다. 그럼 2장에서 좀 더 자세히 살펴보기로 하자. 2. HOWTO .. 2011. 10. 18.
[List] 가장 최근 값에 고정시키기 스샷처럼 로그창같이 가장 최근 값에 고정시키기는 방법 ==> 방법1 ListBox변수.AddString( _T( "문자열" ) ); // 텍스트 추가 부분 ListBox변수.SetTopIndex( ListBox변수.GetCount() - 1 ); // 해당 Index를 맨 위에 보여줌 ==> 방법2 ( (CListBox*)GetDlgItem( ListBoxID ) )->AddString( "문자열" ); //리스트 추가 int line = ( (CListBox*)GetDlgItem( ListBoxID ) )->GetCount(); //추가한 갯수를 얻어옴 ( (CListBox*)GetDlgItem( ListBoxID ) )->SetTopIndex( line - 1 ); //얻어온 갯수로 스크롤 시킴 2011. 7. 29.
반응형