|
|
#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); }
|