MFC나 ATL 환경에서 레지스트리키를 읽고 쓰는 것을 "CRegKey"를 사용하면 매우 간편하게 처리가 가능합니다.
"CRegKey"를 사용하기 위해서는 프로젝트에 따라서 "atlbase.h"가 필요할 수 있습니다.
레지스트리 키 읽기
DWORD ReadRegDWORDValue(HKEY hKey, LPCTSTR strPathKey, LPCTSTR strValueKey)
{
ATL::CRegKey regKey;
DWORD dwValue = -1;
if (regKey.Open(hKey, strPathKey) == ERROR_SUCCESS)
{
regKey.QueryDWORDValue(strValueKey, dwValue); // DWORD값 읽어오기
}
regKey.Close();
return dwValue;
}
위의 예제는 DWORD 값을 읽어오는 예제이지만
QueryDWORDValue를 원하는 함수로 바꾸면 그에 따라서 읽어올 수 있는 값이 달라집니다.
위에서 만든 함수는
DWORD dwResult = ReadRegDWORDValue(HKEY_CURRENT_USER, _T("Software\\MyProject"), _T("Test"));
이렇게 사용 가능합니다.
레지스트리 키 쓰기
// 최상단 키폴더 생성
bool CreateRegKey(HKEY hKey, LPCTSTR strPathKey)
{
bool bResult = false;
ATL::CRegKey regKey;
if (regKey.Create(hKey, strPathKey) == ERROR_SUCCESS)
{
regKey.Close();
bResult = true;
}
return bResult;
}
먼저 최상단 키폴더를 만드는 함수 입니다.
// DWORD 값 저장 함수
bool CreateDWORDValue(HKEY hKey, LPCTSTR strPathKey, LPCTSTR strValueKey, DWORD dwValue)
{
bool bResult = false;
ATL::CRegKey regKey;
if (regKey.Open(hKey, strPathKey) == ERROR_SUCCESS)
{
if (regKey.SetDWORDValue(strValueKey, dwValue) == ERROR_SUCCESS)
bResult = true;
regKey.Close();
}
return bResult;
}
위는 DWORD 값을 저장하는 함수입니다.
레지스트리 키 읽기에서 봤듯이 SetDWORDValue 함수를 원하는 타입의 함수로 변경만 하면 원하는 값을 저장할 수 있습니다.
사용법은
if (CreateRegKey(HKEY_CURRENT_USER, _T("Software\\MyProject")))
{
if (CreateDWORDValue(HKEY_CURRENT_USER, _T("Software\\MyProject"), _T("Test1Dword"), 5))
{
AfxMessageBox(_T("저장 완료!"));
}
}
위와 같습니다.
'Study > MFC' 카테고리의 다른 글
[MFC] Combo Box 컨트롤 (콤보 박스) (0) | 2022.03.05 |
---|---|
[MFC] Button 컨트롤 - 색상 변경 (0) | 2022.02.17 |
[MFC] Button 컨트롤 (버튼 컨트롤) (0) | 2022.02.17 |
[MFC] Tab 컨트롤 (0) | 2022.02.05 |
[MFC Active X] 글자를 출력하는 컨트롤 만들기 (0) | 2021.07.22 |