📄 picdlg.cpp
字号:
void CPIcDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
switch(wParam)
{
case COMMAND_BTN1:
{
CreateRunProgram(G_BTN_SECT_MAIN,G_EXE1_KEY_MAIN);
}
break;
case COMMAND_BTN2:
{
CreateRunProgram(G_BTN_SECT_MAIN,G_EXE2_KEY_MAIN);
}
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];
MAXZERO(wzExePath);
MAXZERO(szExePath);
MAXZERO(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
{
MAXZERO(szBtnPoint);
MAXZERO(szBtnPath);
MAXZERO(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:
{
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[16];
char *BtnArea[8];
char szBtnName[MAX_PATH];
MAXZERO(szBtnNameArea);
MAXZERO(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];
MAXZERO(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);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -