实现缓存对话框类,设置注册表

来源:互联网 发布:全民突击刷钻石软件 编辑:程序博客网 时间:2024/06/03 22:23
#include "StdAfx.h"#include "CachedDLG.h"CachedDLG::CachedDLG(void) : _pValue(0){}CachedDLG::~CachedDLG(void){}LRESULT CachedDLG::OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/){IE_ReadRegConfig(&_pValue);short num = _pValue - '0';//设置CHECK控件m_pc_check = (CButton)GetDlgItem(IDC_CHECK1);m_pc_check.SetCheck(num);ChangeMutileLang();return TRUE;}LRESULT CachedDLG::OnCloseCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/){// 关闭对话框EndDialog(wID);return 0;}LRESULT CachedDLG::OnClose(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/){EndDialog(IDD_DLG_CACHED);return 0;}void CachedDLG::ChangeMutileLang(){WCHAR szText[100] = {0};// 加载STRING字符串到szTextLoadString(g_hInstance,ST_ID_CACHED, szText, 100);// 设置窗口标题::SetWindowTextW(m_hWnd, szText);LoadStringW(g_hInstance, ST_ID_PC, szText, 100);CButton m_pc_check = (CButton)GetDlgItem(IDC_CHECK1);m_pc_check.SetWindowTextW(szText);SetUIText(IDC_BON_OK, ST_ID_OK);SetUIText(IDC_BON_CANCEL, ST_ID_CANCEL);}//设备移除void CachedDLG::RemoveDlg(char* szDevPath){}void CachedDLG::SetUIText(WORD wID, int nResId){CButton button = (CButton)GetDlgItem(wID);WCHAR szText[100] = {0};LoadStringW(g_hInstance, nResId, szText, 100);button.SetWindowTextW(szText);}LRESULT CachedDLG::OnOKCmd(WORD /*wNotifyCode*/, WORD wID, HWND /*hWndCtl*/, BOOL& /*bHandled*/){short CheckValue = m_pc_check.GetCheck();if (CheckValue == BST_CHECKED){_pValue = '1';IE_SetRegConfig(&_pValue);}else{_pValue = '0';IE_SetRegConfig(&_pValue);}EndDialog(wID);return TRUE;}/************************************************************************* Purpose : 设置值 Input   :nVal值 Return  : 0--成功 其他--返回错误码 Modify  : Remark  :  *************************************************************************/ DWORD CachedDLG::IE_SetRegConfig(CHAR *nPin){LONGlRet= 0;HKEYhKey= NULL;charszTmpSite[1024] = {0};DWORDdwDisp= 0;sprintf(szTmpSite, "%s", CACHE_CONFIG_ROOT);charszFlag[32]= {0};chardwData[32]= {0};charszInfo[1024] = {0};DWORDdwInfo= 0;DWORDdwBufLen= 1024;strcpy(szFlag, CACHE_KEY);lRet = RegOpenKeyExA(HKEY_CURRENT_USER, szTmpSite, 0,  KEY_ALL_ACCESS, &hKey);if (lRet != ERROR_SUCCESS){//不存在该键值就创建lRet = RegCreateKeyExA(HKEY_CURRENT_USER, szTmpSite, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hKey, &dwDisp);if (lRet != ERROR_SUCCESS){return lRet;}}strcpy(dwData, nPin);lRet = RegSetValueExA(hKey, szFlag, NULL, REG_BINARY, (LPBYTE)dwData, strlen(dwData)+1);if(lRet != 0){RegCloseKey(hKey);return lRet;}RegCloseKey(hKey);return 0;}/************************************************************************* Purpose : 读取值 Input   : pnVal值 Return  : None Modify  : Remark  :  *************************************************************************/ void CachedDLG::IE_ReadRegConfig(CHAR *pnVal){LONGlRet= 0;HKEYhKey= NULL;charszTmpSite[1024] = {0};charszFlag[32]= {0};charszInfo[1024] = {0};DWORDdwBufLen= 1024;CHARdwData[32]= {0};sprintf(szTmpSite, "%s", CACHE_CONFIG_ROOT);strcpy(szFlag, CACHE_KEY);lRet = RegOpenKeyExA(HKEY_CURRENT_USER, szTmpSite, 0,  KEY_ALL_ACCESS, &hKey);if (lRet != ERROR_SUCCESS){memcpy(pnVal, "0", 1);//给一个默认值return ;}lRet = RegQueryValueExA(hKey, szFlag, NULL, NULL, (LPBYTE)szInfo, &dwBufLen);if (lRet != 0){memcpy(pnVal, "0", 1);//给一个默认值return ;}memcpy(pnVal, szInfo, dwBufLen);return ;}

0 0