📄 picdlg.cpp
字号:
break;
case COMMAND_BTN3:
{
if(m_Flag)
{
OnHideGameBtn(m_Flag);
m_Flag = FALSE;
OnShowMainBtn(m_Flag);
InvalidateRect(m_hWnd,NULL,FALSE);
}
else
{
m_Flag = TRUE;
InvalidateRect(m_hWnd,NULL,FALSE);
}
}
break;
case COMMAND_BTN4:
{
if(m_Flag)
{
this->DestroyBtn();
exit(0);
}
else
{
OnHideGameBtn(m_Flag);
m_Flag = TRUE;
OnShowMainBtn(m_Flag);
InvalidateRect(m_hWnd,NULL,FALSE);
}
// CreateRunProgram(G_BTN_SECT_MAIN,G_EXE4_KEY_MAIN);
}
break;
case COMMAND_BTN5:
{
CreateRunProgram(G_BTN_SECT_GAME,G_EXE1_KEY_MAIN);
}
break;
case COMMAND_BTN6:
{
CreateRunProgram(G_BTN_SECT_GAME,G_EXE2_KEY_MAIN);
}
break;
case COMMAND_BTN7:
{
CreateRunProgram(G_BTN_SECT_GAME,G_EXE3_KEY_MAIN);
}
break;
case COMMAND_BTN8:
{
CreateRunProgram(G_BTN_SECT_GAME,G_EXE5_KEY_MAIN);
}
break;
case COMMAND_BTN9:
{
CreateRunProgram(G_BTN_SECT_GAME,G_EXE6_KEY_MAIN);
}
break;
default:
break;
}
}
BOOL CPIcDlg::CreateRunProgram(const char *section,const char *key)
{
BOOL fRet = FALSE;
CFileHandle FileHandle;
TCHAR wzExePath[MAX_PATH];
char szExePath[MAX_PATH];
TCHAR wzAllExePath[MAX_PATH];
MEMZERO(wzExePath);
MEMZERO(szExePath);
MEMZERO(wzAllExePath);
FileHandle.GetProfileString(m_szFilePath,section,key,szExePath,"");
if(szExePath)
{
memcpy(wzAllExePath,m_CurrentRunFilePath,sizeof(m_CurrentRunFilePath));
MultiByteToWideChar(CP_ACP, 0, szExePath, -1, wzExePath, strlen(szExePath));
lstrcat(wzAllExePath,wzExePath);
if(FileHandle.CreateRunProgram(wzAllExePath))
fRet = true;
}
return fRet;
}
void CPIcDlg::DestroyBtn()
{
if(m_Btn1)
{
m_Btn1->Destroy();
delete m_Btn1;
m_Btn1 = NULL;
}
if(m_Btn2)
{
m_Btn2->Destroy();
delete m_Btn2;
m_Btn2 = NULL;
}
if(m_Btn3)
{
m_Btn3->Destroy();
delete m_Btn3;
m_Btn3 = NULL;
}
if(m_Btn4)
{
m_Btn4->Destroy();
delete m_Btn4;
m_Btn4 = NULL;
}
if(m_Btn5)
{
m_Btn5->Destroy();
delete m_Btn5;
m_Btn5 = NULL;
}
if(m_Btn6)
{
m_Btn6->Destroy();
delete m_Btn6;
m_Btn6 = NULL;
}
if(m_Btn7)
{
m_Btn7->Destroy();
delete m_Btn7;
m_Btn7 = NULL;
}
if(m_Btn8)
{
m_Btn8->Destroy();
delete m_Btn8;
m_Btn8= NULL;
}
if(m_Btn9)
{
m_Btn9->Destroy();
delete m_Btn9;
m_Btn9= NULL;
}
}
void CPIcDlg::GetBtnInfo(const char *section, const char *key,const char *BtnAreakey, TCHAR *BtnPath, int *StartX, int *StartY)
{
CFileHandle Handle;
//get button path from config
char szBtnPath[MAX_PATH];
char szBtnPoint[MAX_PATH];
char *BtnArea[8];
TCHAR wzBtnPath[MAX_PATH];
//create button1
{
MEMZERO(szBtnPoint);
MEMZERO(szBtnPath);
MEMZERO(wzBtnPath);
Handle.GetProfileString(m_szFilePath,section,key,szBtnPath,"res\\Setup_CopyFile_toLeft_dn.bmp");
MultiByteToWideChar(CP_ACP, 0, szBtnPath, -1, wzBtnPath, strlen(szBtnPath));
memcpy(BtnPath,m_CurrentRunFilePath,sizeof(m_CurrentRunFilePath));
lstrcat(BtnPath,wzBtnPath);
//get button point form config
Handle.GetProfileString(m_szFilePath,section,BtnAreakey,szBtnPoint,"143,87");
Handle.SplitString(szBtnPoint,BtnArea,sizeof(BtnArea),",");
*StartX = atoi(BtnArea[0]);
*StartY = atoi(BtnArea[1]);
}
}
void CPIcDlg::OnTimer(WPARAM wParam, LPARAM lParam)
{
switch(wParam)
{
case MOVE_WINDOWS_TIMER_EVEN:
{
/*
m_CopyRect.left = m_ScreenX - 20;
m_CopyRect.top = 0;
m_CopyRect.right = m_ScreenX;
m_CopyRect.bottom = m_ScreenY;
RECT rect;
::SetRect(&rect,0,0,20,m_ScreenY);
CopyRect(&rect,&m_CopyRect);
*/
::InvalidateRect(m_hWnd,NULL,false);
/*
if(m_ScreenY > 0)
m_ScreenY -= 4;
else
::KillTimer(m_hWnd,MOVE_WINDOWS_TIMER_EVEN);
MoveWindow(m_hWnd,0,m_ScreenY,m_ScreenX,272,FALSE);
*/
}
break;
default:
break;
}
}
void CPIcDlg::OnKeyDown(WPARAM wParam, LPARAM lParam)
{
switch(wParam)
{
case VK_BACK://BACKSPACE key 08
break;
case VK_TAB://09
break;
case VK_CLEAR://CLEAR key 0c
break;
case VK_RETURN ://(0D) ENTER key
break;
case VK_CAPITAL ://CAPS LOCK key 14
break;
case VK_SHIFT ://10
break;
case VK_CONTROL://11
break;
case VK_MENU://ALT key 12
break;
case VK_ESCAPE://ESC key 1B
break;
case VK_SPACE://SPACEBAR 20
break;
case VK_PRIOR ://PAGE UP key 21
break;
case VK_NEXT://PAGE DOWN key 22
break;
case VK_END://END key 23
break;
case VK_HOME ://24
break;
case VK_LEFT://25
break;
case VK_UP://26
break;
case VK_RIGHT://27
break;
case VK_DOWN ://28
break;
default:
break;
}
}
void CPIcDlg::OnKeyUp(WPARAM wParam, LPARAM lParam)
{
switch(wParam)
{
case VK_BACK://BACKSPACE key 08
break;
case VK_TAB://09
break;
case VK_CLEAR://CLEAR key 0c
break;
case VK_RETURN ://(0D) ENTER key
break;
case VK_CAPITAL ://CAPS LOCK key 14
break;
case VK_SHIFT ://10
break;
case VK_CONTROL://11
break;
case VK_MENU://ALT key 12
break;
case VK_ESCAPE://ESC key 1B
break;
case VK_SPACE://SPACEBAR 20
break;
case VK_PRIOR ://PAGE UP key 21
break;
case VK_NEXT://PAGE DOWN key 22
break;
case VK_END://END key 23
break;
case VK_HOME ://24
break;
case VK_LEFT://25
break;
case VK_UP://26
break;
case VK_RIGHT://27
break;
case VK_DOWN ://28
break;
default:
break;
}
}
void CPIcDlg::OnLButtonDown(WPARAM wParam, LPARAM lParam)//wParam Key State Masks for Mouse Messages
{
POINT pt;
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
}
void CPIcDlg::OnLButtonUp(WPARAM wParam, LPARAM lParam)
{
POINT pt;
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
}
void CPIcDlg::OnMouseMove(WPARAM wParam, LPARAM lParam)
{
POINT pt;
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
}
BOOL CPIcDlg::OnInitDialog(WPARAM wParam, LPARAM lParam)
{
return TRUE;
}
void CPIcDlg::OnSysCommand(WPARAM wParam, LPARAM lParam)
{
POINT pt;
pt.x = LOWORD(lParam);
pt.y = HIWORD(lParam);
}
void CPIcDlg::SetBtnNameArea(const char *section, const char *key,const char *KeyBtnName,
const char *BtnNameColor,RECT *rect, TCHAR *BtnName,COLORREF *Color)
{
CFileHandle Handle;
char szBtnNameArea[MAX_PATH] ={ NULL};
char *BtnArea[8];
char szBtnName[MAX_PATH] ={NULL};
// MEMZERO(szBtnNameArea);
// MEMZERO(szBtnName);
Handle.GetProfileString(m_szFilePath,section,key,szBtnNameArea,"62,146,119,175");
Handle.SplitString(szBtnNameArea,BtnArea,sizeof(BtnArea),",");
::SetRect(rect,atoi(BtnArea[0]),atoi(BtnArea[1]),atoi(BtnArea[2]),atoi(BtnArea[3]));
Handle.GetProfileString(m_szFilePath,section,BtnNameColor,szBtnNameArea,"0,0,0");
Handle.SplitString(szBtnNameArea,BtnArea,sizeof(BtnArea),",");
*Color = RGB(atoi(BtnArea[0]),atoi(BtnArea[1]),atoi(BtnArea[2]));
m_FontSize = atoi(BtnArea[3]);
Handle.GetProfileString(m_szFilePath,section,KeyBtnName,szBtnName,"道道通");
MultiByteToWideChar(CP_ACP, 0, szBtnName, -1, BtnName, strlen(szBtnName));
}
HFONT CPIcDlg::CreateShowFont(const char *section, const char *Fontkey/*,const char *FontName*/)
{
LOGFONT lf;
// char szFontSzie[8];
// MEMZERO(szFontSzie);
GetObject(GetStockObject(SYSTEM_FONT), sizeof(LOGFONT),&lf);
lf.lfHeight = m_FontSize;
return CreateFontIndirect(&lf);
}
void CPIcDlg::OnShowMainBtn(BOOL BtnFlag)
{
m_Btn1->ShowBtn(BtnFlag);
m_Btn2->ShowBtn(BtnFlag);
m_Btn3->ShowBtn(BtnFlag);
}
void CPIcDlg::OnHideGameBtn(BOOL Flag)
{
m_Btn5->ShowBtn(Flag);
m_Btn6->ShowBtn(Flag);
m_Btn7->ShowBtn(Flag);
m_Btn8->ShowBtn(Flag);
m_Btn9->ShowBtn(Flag);
}
void CPIcDlg::OnFileChangeInfo(WPARAM wParam, LPARAM lParam)
{
FILECHANGENOTIFY *lpfcn = NULL;
FILECHANGEINFO *lpfci = NULL;
lpfcn = (FILECHANGENOTIFY *)lParam;
if (NULL == lpfcn)
return;
lpfci = &(lpfcn->fci);
if (NULL == lpfci)
return;
else
{
switch(lpfci->wEventId)
{
case SHCNE_RENAMEITEM:
break;
case SHCNE_CREATE:
break;
case SHCNE_DELETE:
break;
case SHCNE_MKDIR:
break;
case SHCNE_RMDIR:
break;
case SHCNE_MEDIAINSERTED://insert sd card
break;
case SHCNE_MEDIAREMOVED:
::MessageBox(m_hWnd,_T("SD card removed\n"),_T("Error"),MB_OK);
break;
case SHCNE_DRIVEREMOVED:
break;
case SHCNE_DRIVEADD:
break;
case SHCNE_NETSHARE:
break;
case SHCNE_NETUNSHARE:
break;
case SHCNE_ATTRIBUTES :
break;
case SHCNE_UPDATEDIR:
break;
case SHCNE_UPDATEITEM :
break;
case SHCNE_DRIVEADDGUI:
break;
case SHCNE_RENAMEFOLDER:
break;
default:
break;
}
}
SHChangeNotifyFree(lpfcn);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -