티스토리 뷰

컴퓨터관련

MFC 자주쓰는 코드 정리

최강_람보 2021. 1. 28. 09:01

 

이번에는 제가 MFC 윈도우 프로그램을 개발하면서 자주 사용하는 코드를 정리해보았습니다.

 

주로 문자열 자르기및 문자열 형변환등은 실무에서 자주 쓰이는 유용한 함수들이니 헷갈릴때 마다
꺼내 보시면 좋을듯 합니다.


1 DC로 폰트지정후 텍스트 쓰기

CFont font;
font.CreatePointFont(100, _T("돋움"));
dc.SelectObject(font);
dc.SetTextColor(RGB(0,0,0));
dc.SetTextAlign(TA_RIGHT | TA_TOP);

dc.SetBkMode(TRANSPARENT);
dc.TextOut(120, 440, TEXT("테스트"));

=====================================================

 

2 화면 깜빡임 줄이기

CRect rectComponentArea(30,800,150,1000); // (x, y, x끝, y끝)
InvalidateRect(rectComponentArea, FALSE);

특정위치의 영역을 지정해서 화면 업데이트 할수 있음
=====================================================


3 IP Address Control 주소를 받아와서 문자열로 변환하기

CString strIPAddress;
DWORD dwIP;
CIPAddressCtrl *pAddr = (CIPAddressCtrl*)GetDlgItem(IDC_IPADDRESS_MODEM);
if (!pAddr->IsBlank())
{
pAddr->GetAddress(dwIP);
BYTE a, b, c, d;
a = HIBYTE(HIWORD(dwIP));
b = LOBYTE(HIWORD(dwIP));
c = HIBYTE(LOWORD(dwIP));
d = LOBYTE(LOWORD(dwIP));

strIPAddress.Format(_T("%d.%d.%d.%d"), a, b, c, d);
}
=====================================================

 

4 CString 의 IP주소를 UINT32로 바꾸는 법


unsigned int uiIP=0;
CString strMemberIP =m_listMulticastingConfig.GetItemText(i,1);
CString strA,strB,strC,strD=_T("");
AfxExtractSubString(strA,(LPCTSTR)strMemberIP,0,'.'); //A class
AfxExtractSubString(strB,(LPCTSTR)strMemberIP,1,'.'); //B class
AfxExtractSubString(strC,(LPCTSTR)strMemberIP,2,'.'); //C class
AfxExtractSubString(strD,(LPCTSTR)strMemberIP,3,'.'); //D class

BYTE byteA, byteB, byteC, byteD;
byteA = (BYTE)_ttoi(strA);
byteB = (BYTE)_ttoi(strB);
byteC = (BYTE)_ttoi(strC);
byteD = (BYTE)_ttoi(strD);
uiIP= (byteA << 24) | (byteB << 16) | (byteC << 8) | (byteD);
=====================================================

 

5 CString 를 int형으로 변환 하기

int 형 = _tstoi(cstring 형)

=====================================================


6 콤보박스의 인덱스에 있는 스트링 가져오기

CString strEquipType;
nIndex = m_ComboEquipType.GetCurSel();
m_ComboEquipType.GetLBText(nIndex, strEquipType);
SetDlgItemText(IDC_COMBO_EQUIP_TYPE, strEquipType);

=====================================================

 


7 int를 lpctstr로 형변환하기

TCHAR IBuffer[8];

for(int i=0; i< 8; i++)
{
_stprintf_s(IBuffer, 8, _T("%d"), i);
m_cboSpreadCodeSend.AddString(IBuffer);
}
=====================================================


8 unsigne Int의 변수에 있는 IP주소를 받아와서 CString으로 변환하기

BYTE a, b, c, d;
a= (uiModemIP >> 24);
b= (uiModemIP >> 16);
c= (uiModemIP >> 8);
d= uiModemIP;

CString strIPaddress = _T("");
strIPaddress.Format(_T("%d.%d.%d.%d"),a, b, c, d);
=====================================================

 

9 BYTE를 int형 데이로 변환하기


BYTE a, b, c, d;
a = 192;
b = 168;
c = 231;
d = 1;

unsigned int uiIPAddress= (a << 24) | (b << 16) | (c << 8) | (d);

=====================================================

 


10 CString 문자열을 자를때 쓰는 함수

AfxExtractSubString(token1, str, 0, ';');
1 저장 변수
2 원본 문자열
3 원본 문자열로부터 쪼개지는 토큰들의 인덱스 번호. 0번부터 시작
4 구분자

=====================================================

 


11 현재 시스템의 날짜와 시간 생성하기

SYSTEMTIME stCurTime;
GetLocalTime(&stCurTime);
CString strSWVer = _T("v1.0.0a");
strSWVer.Format(_T("v1.0.%02d%02d%02d%02d"),stCurTime.wYear,stCurTime.wMonth,stCurTime.wDay,stCurTime.wHour);
=====================================================

 


12 CString을 int형으로 변환

_tstoi(strPriority); //CString 변수를 인자로 넣음

=====================================================

 

13 CString 를 Float로 변환

_ttof(CString) //CString변수를 인자로 넣음

====================================

 

 

이상으로 MFC 개발 시 자주쓰는 코드를 코드 및 함수를 정리해보았습니다.

잘 숙지해 두셔서 유용하게 사용하시길 바래요~

 

그럼 이만^^