MFCGridCtrl OnEraseBkgnd ScrollBar

Programming/MFCGridCtrl 2016. 10. 26. 11:34 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MFCGridCtrl OnEraseBkgnd ScrollBar Redraw








MFC Dialog Color 를 바꾸기 위해


OnEraseBkgnd 을 오버라이딩하여 사용하면


Dialog 를 새로 그리게 되는데


이때 CGridCtrl 의 스크롤바 영역도 같이 새로 그리게 된다.








그래서 스크롤바가 존재하지만 안보이는 경우가 발생한다.


그럴때는 OnEraseBkgnd 에서 Dialog 를 새로그린 다음



m_Grid.SetRedraw(true, true);






Redraw 를 하면


스크롤 바를 새로 그린다.








336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MFCGridCtrl CGridCtrl ScrollBar Visible






If you change Dialog color used by OnEraseBkgnd();



you can't see CGridCtrl's ScrollBar











in that case, you should add m_Grid.SetRedraw(true, true); to OnEraseBkgnd();











BOOL CMyDialog::OnEraseBkgnd(CDC* pDC)
{
	// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.

	CRect rect;

	GetClientRect(&rect);

	CBrush myBrush(RGB(255, 255, 255));    // dialog background color <- 요기 바꾸면 됨.
	
	CBrush *pOld = pDC->SelectObject(&myBrush);

	BOOL bRes = pDC->PatBlt(0, 0, rect.Width(), rect.Height(), PATCOPY);

	pDC->SelectObject(pOld);    // restore old brush

	m_Grid.SetRedraw(true, true);

	return bRes;                       // 	return CDialog::OnEraseBkgnd(pDC);
}


MFC CGridCtrl Color Change

Programming/MFCGridCtrl 2016. 10. 20. 15:09 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MFC CGridCtrl Color Change




 





COLORREF ItemBkColour = RGB(255,255,255);

m_Grid.SetItemBkColour(0, 0, ItemBkColour);

m_Grid.SetItemBkColour(0, 1, ItemBkColour);

m_Grid.SetItemBkColour(0, 2, ItemBkColour);

m_Grid.SetItemBkColour(0, 3, ItemBkColour);






m_Grid.SetBkColor(RGB(255, 0, 0)); 






336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MFC Grid control 2.27 DragAndDrop Error








가끔씩 Grid 컨트롤 내의 셀을 컨트롤 밖으로 드래그앤드랍을 하게 되면 에러가 발생한다.






EnableDragRowMode(FALSE);



으로 설정해주니





해당 에러가 발생하지 않는다.






336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MFC Grid control 2.27 ReadOnly, CheckBox Button





// Make cell row,col read-only

m_Grid.SetItemState(row, col, m_Grid.GetItemState(row, col) | GVIS_READONLY);





// Make cell row,col CheckBox Button

m_Grid.SetCellType(row, col, RUNTIME_CLASS(CGridCellCheck));











http://www.codeproject.com/Articles/8/MFC-Grid-control-2-27

How to Use MFC Grid control 2.27

Programming/MFCGridCtrl 2016. 8. 12. 16:13 Posted by TanSanC
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

How to Use MFC Grid control 2.27


http://www.codeproject.com/Articles/8/MFC-Grid-control-2-27

1. Download


MFC Grid control 2.27

6 May 2010 CPOL
A fully featured MFC grid control for displaying tabular data. The grid is a custom control derived from CWnd





2. Essential Include Files



Files

To use the Grid control in your project you will need to add a number of files to your project:

gridctrl.cpp, gridctrl.hMain grid control source and header files.
gridcellbase.cpp, gridcellbase.hMain grid cell base class.
gridcell.cpp, gridcell.hMain grid cell default class implementation.
CellRange.hDefinition of CCellID and CCellRange helper classes.
MemDC.hKeith Rule's memory DC helper class.
InPlaceEdit.cpp, InPlaceEdit.hIn-place edit windows source and header files.
GridDropTarget.cpp, GridDropTarget.hGrid control OLE drag and drop target. Only necessary if you don't define GRIDCONTROL_NO_DRAGDROP in gridctrl.h
Titletip.cpp, Titletip.h

Titletips for cells, from Zafir Anjum. Only necessary if you don't define GRIDCONTROL_NO_TITLETIPS in gridctrl.h



3. Essential Include Files Add to Project 







4. Custom Control Add to Dialog




ID : IDC_GRID


Class : MFCGridCtrl (No CGridCtrl)


if you use CGridCtrl, you can see this error








5. Make Member Variable m_Grid



Dlg.h


- Include


#include "GridCtrl.h"


Make Member Variable m_Grid


CGridCtrl m_Grid;




Dlg.cpp


- Include


#include "GridCtrl.h"





6. IDC_GRID Connect with Member Variable




DDX_GridControl(pDX, IDC_GRID, m_Grid);


DDX_GridControl Function defined in GridCtrl.h









336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

MFC Dialog 에 OnInitDialog 추가하기





CDialog::OnInitDialog

이 메서드를 호출 하에서 여 WM_INITDIALOG 메시지.

virtual BOOL OnInitDialog( );

Windows를 보냅니다는 WM_INITDIALOG 중 대화 상자에 메시지를 만들기CreateIndirect, 또는 DoModal 대화 상자를 바로 표시 되기 전에 발생 하는 호출을.

대화 상자 초기화 될 때 특수 처리를 수행 하려는 경우이 메서드를 재정의 합니다. 재정의 된 버전에서 먼저 기본 클래스를 호출OnInitDialog 하지만 반환 값을 무시 합니다. 일반적으로 반환 합니다 TRUE 에서 메서드를 재정의 합니다.

Windows 호출을 OnInitDialog 일반 표준 글로벌 대화 상자 프로시저 모든 Mfc 라이브러리 대화 상자를 사용 하 여 함수. 사용자 메시지 맵을 통해이 함수를 호출 하 고이 메서드에 대 한 메시지 맵 엔트리는 필요 하지 않습니다 따라서.



Dialog 의 리소스뷰에서 OnInitDialog 를 추가 하려고 하면


메시지와 컨트롤 이벤트에서는 보이지 않는다.



불가능 한것이 아니고 다른 위치에서 하여야한다.




클래스 뷰에서


해당 다이얼로그의 클래스 함수를 선택 후


속성창을 보면


[재정의] 버튼이 있다.




재정의 화면 안에


OnInitDialog 가 존재한다.