📄 ddeproc.c
字号:
if( ConfigInfo.screen_out ) {
CheckMenuItem( mh, DDEMENU_SCREEN_OUT, MF_BYCOMMAND | MF_CHECKED );
}
hideHintBar( hwnd, info, !ConfigInfo.show_hints );
break;
case WM_MENUSELECT:
HintMenuSelect( info->hintbar, hwnd, wparam, lparam );
break;
case WM_MOVE:
GetWindowRect( hwnd, &area );
if( MainWndConfig.state != SIZE_MINIMIZED ) {
MainWndConfig.last_xpos = MainWndConfig.xpos;
MainWndConfig.last_ypos = MainWndConfig.ypos;
MainWndConfig.xpos = area.left;
MainWndConfig.ypos = area.top;
}
break;
case WM_SIZE:
ResizeListBox( LOWORD( lparam ), HIWORD( lparam ), &(info->list ) );
ResizeTB( hwnd );
GetWindowRect( hwnd, &area );
if( wparam != SIZE_MAXIMIZED && wparam != SIZE_MINIMIZED ) {
MainWndConfig.xsize = area.right - area.left;
MainWndConfig.ysize = area.bottom - area.top;
} else {
MainWndConfig.xpos = MainWndConfig.last_xpos;
MainWndConfig.ypos = MainWndConfig.last_ypos;
}
MainWndConfig.state = wparam;
GetClientRect( hwnd, &area );
area.top = area.bottom - info->list.hinthite;
hinthwnd = GetHintHwnd( info->hintbar );
hideHintBar( hwnd, info, !ConfigInfo.show_hints );
MoveWindow( hinthwnd, area.left, area.top,
area.right - area.left, info->list.hinthite, TRUE );
break;
case WM_COMMAND:
cmd = LOWORD( wparam );
switch( cmd ) {
case DDEMENU_MON_POST:
case DDEMENU_MON_SENT:
case DDEMENU_MON_STR:
case DDEMENU_MON_CB:
case DDEMENU_MON_ERR:
case DDEMENU_MON_CONV:
case DDEMENU_MON_LNK:
MonitorChange( hwnd, cmd );
break;
case DDEMENU_TRK_STR:
case DDEMENU_TRK_CONV:
case DDEMENU_TRK_LINK:
case DDEMENU_TRK_SERVER:
DisplayTracking( cmd );
break;
case DDEMENU_SCREEN_OUT:
ConfigInfo.screen_out = !ConfigInfo.screen_out;
mh = GetMenu( hwnd );
if( ConfigInfo.screen_out ) {
CheckMenuItem( mh, DDEMENU_SCREEN_OUT,
MF_BYCOMMAND | MF_CHECKED );
} else {
CheckMenuItem( mh, DDEMENU_SCREEN_OUT,
MF_BYCOMMAND | MF_UNCHECKED );
}
break;
case DDEMENU_EXIT:
DestroyWindow( hwnd );
break;
case DDEMENU_CLEAR:
info->horz_extent = 0;
SendMessage( info->list.box, LB_SETHORIZONTALEXTENT, 0, 0L );
SendMessage( info->list.box, LB_RESETCONTENT, 0, 0L );
break;
case DDEMENU_MARK:
ProcessMark( hwnd, Instance, RecordMsg );
break;
case DDEMENU_SAVE:
SaveListBox( SLB_SAVE_TMP, DumpHeader, ".\\wdde.txt", AppName,
hwnd, info->list.box );
break;
case DDEMENU_SAVE_AS:
SaveListBox( SLB_SAVE_AS, DumpHeader, NULL, AppName,
hwnd, info->list.box );
break;
case DDEMENU_TOOLBAR:
ToggleTB( hwnd );
hideHintBar( hwnd, info, !ConfigInfo.show_hints );
break;
case DDEMENU_HINTBAR:
ConfigInfo.show_hints = !ConfigInfo.show_hints;
hideHintBar( hwnd, info, !ConfigInfo.show_hints );
break;
case DDEMENU_LOG_FILE:
mh = GetMenu( hwnd );
flag = MF_BYCOMMAND;
if( LogToggle() ) {
flag |= MF_CHECKED;
} else {
flag |= MF_UNCHECKED;
CheckMenuItem( mh, DDEMENU_LOG_PAUSE, flag );
}
CheckMenuItem( mh, DDEMENU_LOG_FILE, flag );
break;
case DDEMENU_LOG_PAUSE:
mh = GetMenu( hwnd );
flag = MF_BYCOMMAND;
if( SpyLogPauseToggle() ) {
flag |= MF_CHECKED;
} else {
flag |= MF_UNCHECKED;
}
CheckMenuItem( mh, DDEMENU_LOG_PAUSE, flag );
break;
case DDEMENU_FONT:
if( ChooseMonoFont( hwnd ) ) {
if( ConfigInfo.show_hints ) {
info->list.hinthite = SizeHintBar( info->hintbar );
hideHintBar( hwnd, info, !ConfigInfo.show_hints );
}
GetClientRect( hwnd, &area );
ResizeListBox( area.right - area.left,
area.bottom - area.top, &(info->list ) );
ResetFonts( info );
}
break;
case DDEMENU_LOG_CONFIG:
LogConfigure();
break;
case DDEMENU_MSG_FILTER:
fp = MakeProcInstance( (FARPROC)FilterDlgProc, Instance );
JDialogBoxParam( Instance, "MSG_FILTER_DLG", DDEMainWnd, (DLGPROC)fp, 1 );
FreeProcInstance( fp );
break;
case DDEMENU_CB_FILTER:
fp = MakeProcInstance( (FARPROC)FilterDlgProc, Instance );
JDialogBoxParam( Instance, "CB_FILTER_DLG", DDEMainWnd, (DLGPROC)fp, 0 );
FreeProcInstance( fp );
break;
case DDEMENU_ABOUT:
ai.owner = hwnd;
ai.inst = Instance;
ai.name = AllocRCString( STR_ABOUT_NAME );
ai.version = banner1p2( _DDESPY_VERSION_ );
ai.first_cr_year = AllocRCString( STR_ABOUT_COPYRIGHT_YEAR );
ai.title = AllocRCString( STR_ABOUT_TITLE );
DoAbout( &ai );
FreeRCString( ai.name );
FreeRCString( ai.first_cr_year );
FreeRCString( ai.title );
break;
case DDEMENU_HELP_CONTENTS:
WWinHelp( hwnd, DDE_HELP_FILE, HELP_CONTENTS, 0 );
break;
case DDEMENU_HELP_SRCH:
WWinHelp( hwnd, DDE_HELP_FILE, HELP_PARTIALKEY, (DWORD)"" );
break;
case DDEMENU_HELP_ON_HELP:
WWinHelp( hwnd, HELP_HELP_FILE, HELP_HELPONHELP, 0 );
break;
case DDEMENU_SCROLL:
ConfigInfo.scroll = !ConfigInfo.scroll;
mh = GetMenu( hwnd );
flag = MF_BYCOMMAND;
if( ConfigInfo.scroll ) {
flag |= MF_CHECKED;
} else {
flag |= MF_UNCHECKED;
}
CheckMenuItem( mh, DDEMENU_SCROLL, flag );
break;
case DDEMENU_HWND_ALIAS:
alias_title = AllocRCString( STR_ADD_HWND_ALIAS );
Query4Aliases( HwndAlias, Instance, hwnd, alias_title );
FreeRCString( alias_title );
break;
case DDEMENU_TASK_ALIAS:
alias_title = AllocRCString( STR_ADD_TASK_ALIAS );
Query4Aliases( TaskAlias, Instance, hwnd, alias_title );
FreeRCString( alias_title );
break;
case DDEMENU_CONV_ALIAS:
alias_title = AllocRCString( STR_ADD_CONV_ALIAS );
Query4Aliases( ConvAlias, Instance, hwnd, alias_title );
FreeRCString( alias_title );
break;
case DDEMENU_ALIAS_PURGE:
{
BOOL alias_state;
alias_state = ConfigInfo.alias;
ConfigInfo.alias = FALSE;
RefreshAliases();
ConfigInfo.alias = alias_state;
FreeAlias( ConvAlias );
FreeAlias( TaskAlias );
FreeAlias( HwndAlias );
InitAliases();
}
break;
case DDEMENU_NO_ALIAS:
ConfigInfo.alias = !ConfigInfo.alias;
mh = GetMenu( hwnd );
if( !ConfigInfo.alias ) {
CheckMenuItem( mh, DDEMENU_NO_ALIAS,
MF_BYCOMMAND | MF_CHECKED );
} else {
CheckMenuItem( mh, DDEMENU_NO_ALIAS,
MF_BYCOMMAND | MF_UNCHECKED );
}
RefreshAliases();
break;
default:
return( DefWindowProc( hwnd, msg, wparam, lparam ) );
break;
}
break;
case WM_ENDSESSION:
if( wparam ) {
SaveConfigFile();
SpyLogClose();
}
break;
case WM_DESTROY:
HintWndDestroy( info->hintbar );
HintFini();
SpyLogClose();
FreeProcInstance( DDEMsgFp );
SaveConfigFile();
FiniTrackWnd();
DDEToolBarFini();
DestroyMonoFonts();
FiniRCStrings();
WWinHelp( hwnd, DDE_HELP_FILE, HELP_QUIT, 0 );
PostQuitMessage( 0 );
break;
default:
return( DefWindowProc( hwnd, msg, wparam, lparam ) );
}
return( TRUE );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -