📄 hikerwbstartdlg.cpp
字号:
tnid.hIcon = hicon;
if (lpszTip)
lstrcpyn(tnid.szTip, lpszTip, sizeof(tnid.szTip));
else
tnid.szTip[0]='\0';
res=Shell_NotifyIcon(NIM_MODIFY, &tnid);
if (hicon)
DestroyIcon(hicon);
return res;
}
//处理图标回调消息MYWM_NOTIFYICON
void CHikerWBStartDlg::OnMyIconNotify( WPARAM wParam, LPARAM lParam )
{
UINT uMouseMsg = (UINT) lParam;
CMenu menu, menuskb, menucharset;
POINT pt;
GetCursorPos(&pt);
if(uMouseMsg == WM_LBUTTONDOWN) //点击图标
{
menu.CreatePopupMenu();
if (m_bStart)
menu.AppendMenu(MF_STRING, ID_MENU_START, "关闭输入法 CTRL+空格");
else
menu.AppendMenu(MF_STRING, ID_MENU_START, "启动输入法 CTRL+空格");
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, ID_MENU_EXIT, "退出 CTRL+SHIFT+空格");
ClientToScreen(&pt);
menu.TrackPopupMenu(TPM_RIGHTALIGN, pt.x, pt.y-125, this);
}
else if(uMouseMsg == WM_RBUTTONDOWN)
{
menuskb.CreatePopupMenu();
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_PC, "PC 键盘");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_GL, "希腊字母");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_RL, "俄文字母");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_CSL, "拼 音");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_PN, "注 音");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_JH, "日文平假名");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_JK, "日文片假名");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_PT, "标点符号");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_SN, "数字序号");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_MN, "数学符号");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_SP, "特殊符号");
menuskb.AppendMenu(MF_SEPARATOR);
menuskb.AppendMenu(MF_STRING, ID_MENU_SKB_CLOSE, "关闭软键盘");
menucharset.CreatePopupMenu();
if (GetOutputCharset() == 0)
{
menucharset.AppendMenu(MF_STRING|MF_CHECKED, ID_MENU_GB2312, "GB2312");
menucharset.AppendMenu(MF_STRING, ID_MENU_GBK, "GBK");
}
else
{
menucharset.AppendMenu(MF_STRING, ID_MENU_GB2312, "GB2312");
menucharset.AppendMenu(MF_STRING|MF_CHECKED, ID_MENU_GBK, "GBK");
}
menu.CreatePopupMenu();
if (GetOutputStyle() == 0)
menu.AppendMenu(MF_STRING, ID_MENU_STYLE, "终结者风格 CTRL+U");
else
menu.AppendMenu(MF_STRING|MF_CHECKED, ID_MENU_STYLE, "终结者风格 CTRL+U");
menu.AppendMenu(MF_SEPARATOR);
if (GetFloatWndStyle() == 0)
menu.AppendMenu(MF_STRING, ID_MENU_FWSTYLE, "光标跟随 CTRL+I");
else
menu.AppendMenu(MF_STRING|MF_CHECKED, ID_MENU_FWSTYLE, "光标跟随 CTRL+I");
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_POPUP, (int)(menucharset.m_hMenu), "字符集");
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_POPUP, (int)(menuskb.m_hMenu), "软键盘");
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, ID_MENU_TRAINFILE, "从文章学习"); //>>
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, ID_MENU_SET, "设置");
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, ID_MENU_HELP, "帮助"); //>>
menu.AppendMenu(MF_SEPARATOR);
menu.AppendMenu(MF_STRING, ID_MENU_ABOUT, "关于");
ClientToScreen(&pt);
//rect = CRect()
menu.TrackPopupMenu(TPM_RIGHTALIGN, pt.x, pt.y-125, this);
}
}
//消息MYWM_SHOWAPPICONIC处理函数,在任务栏显示图标
void CHikerWBStartDlg::OnShowAppIconic(WPARAM wParam, LPARAM lParam )
{
//HICON theIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDD_HIKERWBSTART_DIALOG) );
MyTaskBarAddIcon(GetSafeHwnd(), 100, m_hIcon, _T("终结者五笔"));
ShowWindow(SW_HIDE );
}
void CHikerWBStartDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
MyTaskBarDeleteIcon( GetSafeHwnd(), 100);
BOOL bOk = UnregisterHotKey(GetSafeHwnd(), 0x0001);
bOk &= UnregisterHotKey(GetSafeHwnd(), 0x0002);
bOk &= UnregisterHotKey(GetSafeHwnd(), 0x0003);
bOk &= UnregisterHotKey(GetSafeHwnd(), 0x0004);
}
void CHikerWBStartDlg::OnMenuStyle()
{
// TODO: Add your command handler code here
if (GetOutputStyle() == 0)
SetOutputStyle(1);
else
SetOutputStyle(0);
}
void CHikerWBStartDlg::OnMenuFWStyle()
{
// TODO: Add your command handler code here
if (GetFloatWndStyle() == 0)
SetFloatWndStyle(1);
else
SetFloatWndStyle(0);
}
void CHikerWBStartDlg::OnMenuExit()
{
// TODO: Add your command handler code here
EndModalLoop(0);
}
void CHikerWBStartDlg::OnMenuHelp()
{
// TODO: Add your command handler code here
}
void CHikerWBStartDlg::OnMenuSkb(int nID)
{
// TODO: Add your command handler code here
//LockInputWnd();
switch(nID) {
case ID_MENU_SKB_PC:
ShowSoftKeyboard(TRUE, 0);
break;
case ID_MENU_SKB_GL:
ShowSoftKeyboard(TRUE, 1);
break;
case ID_MENU_SKB_RL:
ShowSoftKeyboard(TRUE, 2);
break;
case ID_MENU_SKB_CSL:
ShowSoftKeyboard(TRUE, 3);
break;
case ID_MENU_SKB_PN:
ShowSoftKeyboard(TRUE, 4);
break;
case ID_MENU_SKB_JH:
ShowSoftKeyboard(TRUE, 5);
break;
case ID_MENU_SKB_JK:
ShowSoftKeyboard(TRUE, 6);
break;
case ID_MENU_SKB_PT:
ShowSoftKeyboard(TRUE, 7);
break;
case ID_MENU_SKB_SN:
ShowSoftKeyboard(TRUE, 8);
break;
case ID_MENU_SKB_MN:
ShowSoftKeyboard(TRUE, 9);
break;
case ID_MENU_SKB_SP:
ShowSoftKeyboard(TRUE, 10);
break;
case ID_MENU_SKB_CLOSE:
ShowSoftKeyboard(FALSE);
break;
default:
break;
}
//ReleaseFocus();
return;
}
void CHikerWBStartDlg::OnMenuGb2312()
{
// TODO: Add your command handler code here
SetOutputCharset(0);
}
void CHikerWBStartDlg::OnMenuGbk()
{
// TODO: Add your command handler code here
SetOutputCharset(1);
}
void CHikerWBStartDlg::OnMenuAbout()
{
// TODO: Add your command handler code here
PostMessage(WM_SYSCOMMAND, IDM_ABOUTBOX, 0);
}
void CHikerWBStartDlg::OnMenuStart()
{
// TODO: Add your command handler code here
m_bStart = !m_bStart;
if (m_bStart)
HookOn();
else
HookOff();
}
void CHikerWBStartDlg::OnMenuTrainFromFile()
{
// TODO: Add your command handler code here
TrainFromFile();
}
BOOL CHikerWBStartDlg::OnQueryEndSession()
{
// TODO: Add your command handler code here
DestroySubWnd(); //invoke EndHook and so save mb
return TRUE;
}
void CHikerWBStartDlg::ChangeIcon(int iIcon)
{
//HICON theIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDD_HIKERWBSTART_DIALOG) );
switch (iIcon)
{
case 0:
MyTaskBarChangeIcon(GetSafeHwnd(), 100, m_hIcon, _T("终结者五笔"));
break;
case 1:
MyTaskBarChangeIcon(GetSafeHwnd(), 100, m_hIconE, _T("终结者五笔"));
break;
case 2:
MyTaskBarChangeIcon(GetSafeHwnd(), 100, m_hIconS, _T("终结者五笔"));
break;
}
}
int CHikerWBStartDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
BOOL bOk;
bOk= RegisterHotKey(GetSafeHwnd(), 0x0001, MOD_CONTROL, VK_SPACE);
bOk &= RegisterHotKey(GetSafeHwnd(), 0x0002, MOD_CONTROL|MOD_SHIFT, VK_SPACE);
bOk &= RegisterHotKey(GetSafeHwnd(), 0x0003, MOD_CONTROL, 85);
bOk &= RegisterHotKey(GetSafeHwnd(), 0x0004, MOD_CONTROL, 73);
return 0;
}
void CHikerWBStartDlg::OnMenuSet()
{
// TODO: Add your command handler code here
SetSysPara();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -