본문 바로가기
컴퓨터관련

MFC 자주쓰는 코드 정리

by 최강_람보 2021. 1. 28.
반응형

 

이번에는 제가 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 개발 시 자주쓰는 코드를 코드 및 함수를 정리해보았습니다.

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

 

그럼 이만^^

반응형