170 lines
4.3 KiB
C
170 lines
4.3 KiB
C
|
#include "precomp.h"
|
||
|
#pragma hdrstop
|
||
|
/***************************************************************************/
|
||
|
/****************** Basic Class Dialog Handlers ****************************/
|
||
|
/***************************************************************************/
|
||
|
|
||
|
|
||
|
/*
|
||
|
*****************************************************************************/
|
||
|
|
||
|
PCSTR PropName = "_helpactiveprop";
|
||
|
|
||
|
INT_PTR APIENTRY
|
||
|
FGstMaintDlgProc(
|
||
|
HWND hdlg,
|
||
|
UINT wMsg,
|
||
|
WPARAM wParam,
|
||
|
LPARAM lParam
|
||
|
)
|
||
|
{
|
||
|
CHP rgchNum[10];
|
||
|
WORD idc;
|
||
|
PSZ psz;
|
||
|
RGSZ rgsz;
|
||
|
SZ sz;
|
||
|
static HICON hiconOld = NULL;
|
||
|
|
||
|
Unused(lParam);
|
||
|
|
||
|
switch (wMsg) {
|
||
|
|
||
|
case STF_REINITDIALOG:
|
||
|
if ((sz = SzFindSymbolValueInSymTab("ReInit")) == (SZ)NULL ||
|
||
|
(CrcStringCompareI(sz, "YES") != crcEqual)) {
|
||
|
|
||
|
return(fTrue);
|
||
|
|
||
|
}
|
||
|
|
||
|
case WM_INITDIALOG:
|
||
|
|
||
|
SetProp(hdlg,PropName,(HANDLE)FALSE);
|
||
|
|
||
|
if( wMsg == WM_INITDIALOG ) {
|
||
|
FCenterDialogOnDesktop(hdlg);
|
||
|
}
|
||
|
|
||
|
if( !hiconOld ) {
|
||
|
hiconOld = (HICON)GetClassLongPtr(hdlg, GCLP_HICON);
|
||
|
SetClassLongPtr(hdlg, GCLP_HICON, (LONG_PTR)LoadIcon(MyDllModuleHandle, MAKEINTRESOURCE(IDI_STF_ICON)));
|
||
|
// above was GetModuleHandle(NULL)
|
||
|
}
|
||
|
|
||
|
// Handle all the text status fields in this dialog
|
||
|
|
||
|
if ((sz = SzFindSymbolValueInSymTab("TextFields")) != (SZ)NULL) {
|
||
|
WORD idcStatus;
|
||
|
|
||
|
while ((psz = rgsz = RgszFromSzListValue(sz)) == (RGSZ)NULL) {
|
||
|
if (!FHandleOOM(hdlg)) {
|
||
|
DestroyWindow(GetParent(hdlg));
|
||
|
return(fTrue);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
idcStatus = IDC_TEXT1;
|
||
|
while (*psz != (SZ)NULL && GetDlgItem(hdlg, idcStatus)) {
|
||
|
SetDlgItemText (hdlg, idcStatus++,*psz++);
|
||
|
}
|
||
|
|
||
|
EvalAssert(FFreeRgsz(rgsz));
|
||
|
}
|
||
|
|
||
|
return(fTrue);
|
||
|
|
||
|
case WM_CLOSE:
|
||
|
PostMessage(
|
||
|
hdlg,
|
||
|
WM_COMMAND,
|
||
|
MAKELONG(IDC_X, BN_CLICKED),
|
||
|
0L
|
||
|
);
|
||
|
return(fTrue);
|
||
|
|
||
|
|
||
|
case WM_COMMAND:
|
||
|
|
||
|
switch (idc = LOWORD(wParam)) {
|
||
|
|
||
|
case MENU_HELPINDEX:
|
||
|
case MENU_HELPSEARCH:
|
||
|
case MENU_HELPONHELP:
|
||
|
|
||
|
if(FProcessWinHelpMenu( hdlg, idc )) {
|
||
|
SetProp(hdlg,PropName,(HANDLE)TRUE);
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case MENU_ABOUT:
|
||
|
|
||
|
{
|
||
|
TCHAR Title[100];
|
||
|
|
||
|
LoadString(MyDllModuleHandle,IDS_APP_TITLE,Title,sizeof(Title)/sizeof(TCHAR));
|
||
|
// above was GetModuleHandle(NULL)
|
||
|
ShellAbout(hdlg,Title,NULL,(HICON)GetClassLongPtr(hdlg,GCLP_HICON));
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case MENU_EXIT:
|
||
|
PostMessage(
|
||
|
hdlg,
|
||
|
WM_COMMAND,
|
||
|
MAKELONG(IDC_X, BN_CLICKED),
|
||
|
0L
|
||
|
);
|
||
|
return(fTrue);
|
||
|
|
||
|
case IDCANCEL:
|
||
|
if (LOWORD(wParam) == IDCANCEL) {
|
||
|
|
||
|
if (!GetDlgItem(hdlg, IDC_B) || HIWORD(GetKeyState(VK_CONTROL)) || HIWORD(GetKeyState(VK_SHIFT)) || HIWORD(GetKeyState(VK_MENU)))
|
||
|
{
|
||
|
break;
|
||
|
}
|
||
|
wParam = IDC_B;
|
||
|
|
||
|
}
|
||
|
case MENU_CHANGE:
|
||
|
case IDC_O:
|
||
|
case IDC_C:
|
||
|
case IDC_M:
|
||
|
case IDC_B:
|
||
|
case IDC_X:
|
||
|
case IDC_BTN0:
|
||
|
case IDC_BTN1: case IDC_BTN2: case IDC_BTN3:
|
||
|
case IDC_BTN4: case IDC_BTN5: case IDC_BTN6:
|
||
|
case IDC_BTN7: case IDC_BTN8: case IDC_BTN9:
|
||
|
|
||
|
_itoa((INT)wParam, rgchNum, 10);
|
||
|
while (!FAddSymbolValueToSymTab("ButtonPressed", rgchNum))
|
||
|
if (!FHandleOOM(hdlg))
|
||
|
{
|
||
|
DestroyWindow(GetParent(hdlg));
|
||
|
return(fTrue);
|
||
|
}
|
||
|
|
||
|
PostMessage(GetParent(hdlg), (WORD)STF_UI_EVENT, 0, 0L);
|
||
|
break;
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
|
||
|
|
||
|
case STF_DESTROY_DLG:
|
||
|
if(GetProp(hdlg,PropName)) {
|
||
|
WinHelp(hdlg,NULL,HELP_QUIT,0);
|
||
|
}
|
||
|
if (hiconOld) {
|
||
|
SetClassLongPtr(hdlg, GCLP_HICON, (LONG_PTR)hiconOld);
|
||
|
hiconOld = NULL;
|
||
|
}
|
||
|
PostMessage(GetParent(hdlg), (WORD)STF_MAINT_DLG_DESTROYED, 0, 0L);
|
||
|
DestroyWindow(hdlg);
|
||
|
return(fTrue);
|
||
|
}
|
||
|
|
||
|
return(fFalse);
|
||
|
}
|