본문 바로가기

Windows/MFC

Windows Theme info 윈도우즈 테마 정보 알기

Link : http://www.devpia.com/Forum/BoardView.aspx?no=554758&ref=391446&page=1&forumname=VC_QA&stype=&KeyW=%c5%d7%b8%b6&KeyR=title

GetCurrentThemeName() 함수가 있습니다.
uxtheme.h 헤더와 UxTheme.lib lib 파일과 링크 해주시면 됩니다.
-_-; 근데 이 함수.. 최소 윈도우 버전이 xp다 -_-;;;;;;


레지스트리 값을 읽는 방법으로....

HKEY_CURRENT_USER 안의
Software\\Microsoft\\Windows\\CurrentVersion\\ThemeManager\\ 값중에
ThemeActive 가 1이면 테마적용된 상태이고 0이면 고전스타일 입니다...
[code]
int CCommon::GetThemeType(void)
{
    HKEY openKey;
    wchar_t pszValue[_MAX_PATH];    // 값이 반환될 변수         
    DWORD dwType    = REG_SZ;        // 찾는값의 TYPE
    DWORD dwCount    = _MAX_PATH;    // 반환될 값의 길이

    // 테마의 정보가 들어있는 Path 위치
    CString szRegPath(L"Software\\Microsoft\\Windows\\CurrentVersion\\ThemeManager\\");
    memset(pszValue, 0, sizeof(pszValue));

    RegOpenKey(HKEY_CURRENT_USER, szRegPath, &openKey);
    RegQueryValueEx(openKey, L"ThemeActive", 0, &dwType, (LPBYTE)pszValue, &dwCount);
    RegCloseKey(openKey);    

    return _wtoi(pszValue);;
}
[/code]