📄 checksetdlg.cpp
字号:
// CheckSetDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Demo03.h"
#include "CheckSetDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//增加全局变量的引用声明
extern HWND gs_hWnd;
/////////////////////////////////////////////////////////////////////////////
// CCheckSetDlg dialog
CCheckSetDlg::CCheckSetDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCheckSetDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCheckSetDlg)
//原来的设定
//m_bCheckPic = FALSE;
//m_bCheckUrl = FALSE;
//修改后的设定
m_bCheckPic = TRUE;
m_bCheckUrl = TRUE;
//}}AFX_DATA_INIT
}
void CCheckSetDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCheckSetDlg)
DDX_Check(pDX, IDC_CHECK_PIC, m_bCheckPic);
DDX_Check(pDX, IDC_CHECK_URL, m_bCheckUrl);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCheckSetDlg, CDialog)
//{{AFX_MSG_MAP(CCheckSetDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCheckSetDlg message handlers
void CCheckSetDlg::OnOK()
{
// TODO: Add extra validation here
//CDialog::OnOK();
//定义两个临时变量,保存原来的检测属性;
BOOL m_bTempCheckUrl = m_bCheckUrl;
BOOL m_bTempCheckPic = m_bCheckPic;
UpdateData(TRUE);
//如果检测属性发生变化,则发消息到CmainFrame,应用相应的变化
if(m_bTempCheckUrl != m_bCheckUrl)
::PostMessage(gs_hWnd,WM_SET_CHECK_URL,m_bCheckUrl,0);
if(m_bTempCheckPic != m_bCheckPic)
::PostMessage(gs_hWnd,WM_SET_CHECK_PIC,m_bCheckPic,0);
AfxMessageBox("设定完成!");
// 保存当前设定到注册表中:
HKEY hDir = 0 ;
char strStatus[10] = {'\0'};
//打开注册表
if( RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Demo03",
NULL,
KEY_ALL_ACCESS,
&hDir) == ERROR_SUCCESS)
{
//如果打开注册表项成功,则直接添加键值
wsprintf(strStatus,"%2d",(int)m_bCheckUrl);
RegSetValueEx(hDir,"bIsCheckUrl",0,REG_SZ,(CONST BYTE *)strStatus,sizeof(strStatus));
wsprintf(strStatus,"%2d",(int)m_bCheckPic);
RegSetValueEx(hDir,"bIsCheckPic",0,REG_SZ,(CONST BYTE *)strStatus,sizeof(strStatus));
RegCloseKey(hDir);
}
else
{
//打开项失败,创建该项
RegCreateKey(
HKEY_LOCAL_MACHINE,
"SOFTWARE\\Demo03",
&hDir
);
wsprintf(strStatus,"%2d",(int)m_bCheckUrl);
RegSetValueEx(hDir,"bIsCheckUrl",0,REG_SZ,(CONST BYTE *)strStatus,sizeof(strStatus));
wsprintf(strStatus,"%2d",(int)m_bCheckPic);
RegSetValueEx(hDir,"bIsCheckPic",0,REG_SZ,(CONST BYTE *)strStatus,sizeof(strStatus));
RegCloseKey(hDir);
}
CDialog::OnOK();
}
BOOL CCheckSetDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//定义相关变量
HKEY hDir = 0 ;
BYTE strStatus[10];
DWORD dwType = REG_SZ;
DWORD dwSize = sizeof(strStatus);
//初始化strStatus
memset(strStatus,0,dwSize);
//打开注册表
if( RegOpenKeyEx(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Demo03",
NULL,
KEY_ALL_ACCESS,
&hDir) == ERROR_SUCCESS)
{
//如果打开注册表项成功,获取键值,赋初值
if( RegQueryValueEx( hDir,
"bIsCheckUrl",
NULL,
&dwType,
strStatus,
&dwSize ) == ERROR_SUCCESS )
{
//memcpy(strNum2,strNum,sizeof(strNum2));
m_bCheckUrl = (BOOL)atoi((char *)strStatus);
}
else
{
m_bCheckUrl = TRUE; //默认为启动检测
}
if( RegQueryValueEx( hDir,
"bIsCheckPic",
NULL,
&dwType,
strStatus,
&dwSize ) == ERROR_SUCCESS )
{
//memcpy(strNum2,strNum,sizeof(strNum2));
m_bCheckPic = (BOOL)atoi((char *)strStatus);
}
else
{
m_bCheckPic = TRUE; //默认为启动检测
}
RegCloseKey(hDir);
}
else
{
//如果打开注册表项失败,给默认值.
m_bCheckUrl = TRUE;
m_bCheckPic = TRUE;
}
//将设定应用到对话框控件中
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -