SheetDlg.cpp
// SheetDlg.cpp : implementation file
//
#include "stdafx.h"
#include "LEDConfig.h"
#include "SheetDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CSheetDlg
BOOL beProperty=FALSE;
IMPLEMENT_DYNAMIC(CSheetDlg, CPropertySheet)
#define IDLG_CHINESE 0xF1
#define IDLG_ENGLISH 0xF2
CSheetDlg::CSheetDlg(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
AddPage(&m_sendCardPage);
AddPage(&m_receiveCardPage);
AddPage(&m_multiFunctionCardPage);
}
CSheetDlg::CSheetDlg(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
AddPage(&m_sendCardPage);
AddPage(&m_receiveCardPage);
AddPage(&m_multiFunctionCardPage);
}
CSheetDlg::~CSheetDlg()
{
}
BEGIN_MESSAGE_MAP(CSheetDlg, CPropertySheet)
ON_WM_SYSCOMMAND()
END_MESSAGE_MAP()
// CSheetDlg message handlers
BOOL CSheetDlg::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
// TODO: Add your specialized code here
//#define ID_APPLY_NOW 0x3021 // 应用
//#define ID_WIZBACK 0x3023 // 上一步
//#define ID_WIZNEXT 0x3024 // 下一步
//#define ID_WIZFINISH 0x3025 // 完成
beProperty=TRUE;
GetDlgItem(ID_APPLY_NOW)-> ShowWindow(SW_HIDE);
GetDlgItem(IDOK)-> ShowWindow(SW_HIDE);
GetDlgItem(IDCANCEL)-> ShowWindow(SW_HIDE);
GetDlgItem(IDHELP)-> ShowWindow(SW_HIDE);
UINT flag_uncheck=MF_BYPOSITION|MF_STRING|MF_UNCHECKED;
UINT flag_check=MF_BYPOSITION|MF_STRING|MF_CHECKED;
HKEY hkey;
TCHAR cstr[100];
long byte;
if(0==RegOpenKey(HKEY_LOCAL_MACHINE,_T("Software\\卡莱特LEDConfig_Language"),&hkey))
{
RegQueryValue(hkey,NULL,cstr,&byte);
RegCloseKey(hkey);
}
CString str(cstr);
if(str==_T("Chinese")){
GetSystemMenu(FALSE)->InsertMenu(0,flag_check,IDLG_CHINESE,_T("中文"));
GetSystemMenu(FALSE)->InsertMenu(1,flag_uncheck,IDLG_ENGLISH,_T("英文"));
GetSystemMenu(FALSE)->ModifyMenu(3,flag_uncheck,GetSystemMenu(FALSE)->GetMenuItemID(3),_T("关闭(C) Alt+F4"));
}
else{
GetSystemMenu(FALSE)->InsertMenu(0,flag_uncheck,IDLG_CHINESE,_T("Chinese"));
GetSystemMenu(FALSE)->InsertMenu(1,flag_check,IDLG_ENGLISH,_T("English"));
GetSystemMenu(FALSE)->ModifyMenu(2,flag_uncheck,GetSystemMenu(FALSE)->GetMenuItemID(2),_T("Move(M)"));
GetSystemMenu(FALSE)->ModifyMenu(3,flag_uncheck,GetSystemMenu(FALSE)->GetMenuItemID(3),_T("Close(C) Alt+F4"));
}
SetWindowText(LoadStringFromLgFile(DlglanguagePath,_T("SHEET")));
CStringArray factor;
factor.Add(LoadStringFromLgFile(DlglanguagePath,_T("IDD_SEND_CARD")));
factor.Add(LoadStringFromLgFile(DlglanguagePath,_T("IDD_RECEIVE_CARD")));
factor.Add(LoadStringFromLgFile(DlglanguagePath,_T("IDD_MULTIFUNCTION_CARD")));
//解决debug和release(优化状态下)不能同时编译通过
for(LONG i=0;i<3;++i){
TCITEM tabCtrItem;
tabCtrItem.mask=TCIF_TEXT;
//GetTabControl()->GetItem(i,&tabCtrItem);
TCHAR ch[100] = {0};
memcpy(ch, factor.GetAt(i), factor.GetAt(i).GetLength() * sizeof(TCHAR));
tabCtrItem.pszText = ch;
GetTabControl()->SetItem(i,&tabCtrItem);
}
return bResult;
}
void CSheetDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
// TODO: Add your message handler code here and/or call default
UINT nFlags=GetSystemMenu(FALSE)->GetMenuState(IDLG_CHINESE,MF_BYCOMMAND);
if(nID==IDLG_CHINESE){
GetSystemMenu(FALSE)->CheckMenuItem(IDLG_CHINESE,MF_BYCOMMAND|MF_CHECKED);
GetSystemMenu(FALSE)->CheckMenuItem(IDLG_ENGLISH,MF_BYCOMMAND|MF_UNCHECKED);
HKEY hkey;
if(0==RegOpenKey(HKEY_LOCAL_MACHINE,_T("Software\\卡莱特LEDConfig_Language"),&hkey))
{
RegSetValue(HKEY_LOCAL_MACHINE,_T("Software\\卡莱特LEDConfig_Language"),REG_SZ,_T("Chinese"),sizeof(_T("Chinese")));
RegCloseKey(hkey);
}
}
if(nID==IDLG_ENGLISH){
GetSystemMenu(FALSE)->CheckMenuItem(IDLG_CHINESE,MF_BYCOMMAND|MF_UNCHECKED);
GetSystemMenu(FALSE)->CheckMenuItem(IDLG_ENGLISH,MF_BYCOMMAND|MF_CHECKED);
HKEY hkey;
if(0==RegOpenKey(HKEY_LOCAL_MACHINE,_T("Software\\卡莱特LEDConfig_Language"),&hkey))
{
RegSetValue(HKEY_LOCAL_MACHINE,_T("Software\\卡莱特LEDConfig_Language"),REG_SZ,_T("English"),sizeof(_T("English")));
RegCloseKey(hkey);
}
}
if(nID==IDLG_ENGLISH||nID==IDLG_CHINESE)
{
//重启
int sel = IDYES;
sel = MessageBox(LoadStringFromLgFile(DlglanguagePath,_T("IDS_SOFTWARE_REBOOT")),LoadStringFromLgFile(DlglanguagePath,_T("IDS_REBOOT_NOTIFY")),MB_YESNO);
if(sel == IDYES)
{
TCHAR buf[256];
::GetModuleFileName(NULL,buf,sizeof(buf));
CString strPath = buf;
ShowWindow(SW_HIDE);//隐藏本对话框
UINT uint = WinExec(CT2A(strPath), SW_SHOW);//启动strPath路径下的执行文件
PostQuitMessage(0);
}
}
CPropertySheet::OnSysCommand(nID, lParam);
}

浙公网安备 33010602011771号