|
|
1.1 ! root 1: /**************************************************************************\ ! 2: * dialogs.c -- module for the two dialogs (LOGFONT & TEXTMETRIC) ! 3: * Includes the window procedure and an initialization routine. ! 4: * (Both routines serve for both of the dialog windows.) ! 5: * ! 6: \**************************************************************************/ ! 7: ! 8: #include <windows.h> ! 9: #include <string.h> ! 10: #include "ntfonts.h" ! 11: ! 12: ! 13: ! 14: int initDlg(HWND hwndMain) ! 15: { ! 16: hwndDlgTM = CreateDialog (hInst, "textmetricDlg", hwndMain, ! 17: (DLGPROC)LogFontWndProc); ! 18: if (hwndDlgTM == NULL) return FALSE; ! 19: ! 20: SetWindowPos (hwndDlgTM, NULL, ! 21: CHILDLEFT(0), CHILDTOP, ! 22: 0,0, SWP_NOZORDER | SWP_NOSIZE); ! 23: ! 24: ! 25: ! 26: hwndDlgLF = CreateDialog (hInst, "logfontDlg", hwndMain, ! 27: (DLGPROC)LogFontWndProc); ! 28: if (hwndDlgLF == NULL) return FALSE; ! 29: ! 30: SetWindowPos (hwndDlgLF, NULL, ! 31: CHILDLEFT(1), CHILDTOP, ! 32: 0,0, SWP_NOZORDER | SWP_NOSIZE); ! 33: ! 34: SetClassLong (hwndDlgLF, GCL_HICON, (LONG)LoadIcon(hInst, "ntfontsIcon")); ! 35: ! 36: ! 37: return TRUE; ! 38: } ! 39: ! 40: ! 41: ! 42: /**************************************************************************\ ! 43: * ! 44: * function: LogFontWndProc ! 45: * ! 46: * input parameters: normal window procedure parameters. ! 47: * global variables: ! 48: * ! 49: * This window procedure is used for two completely different dialog boxes. ! 50: \**************************************************************************/ ! 51: LRESULT LogFontWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ! 52: { ! 53: static LPLOGFONT lplf; ! 54: static LPTEXTMETRIC lptm; ! 55: ! 56: switch (message) { ! 57: ! 58: ! 59: /**********************************************************************\ ! 60: * WMU_DEMOTOLF ! 61: * ! 62: * lParam - pointer to LOGFONT structure. ! 63: * ! 64: * User message. Take the input LOGFONT and fill the edit fields of the ! 65: * dialog box. ! 66: \**********************************************************************/ ! 67: case WMU_DEMOTOLF: { ! 68: lplf = (LPLOGFONT) lParam; ! 69: ! 70: SetDlgItemInt (hwnd, DIDHEIGHT , lplf->lfHeight, FALSE); ! 71: SetDlgItemInt (hwnd, DIDHEIGHT , lplf->lfHeight, FALSE); ! 72: SetDlgItemInt (hwnd, DIDWIDTH , lplf->lfWidth, FALSE); ! 73: SetDlgItemInt (hwnd, DIDESCAPE , lplf->lfEscapement, FALSE); ! 74: SetDlgItemInt (hwnd, DIDORIENT , lplf->lfOrientation, FALSE); ! 75: SetDlgItemInt (hwnd, DIDWEIGHT , lplf->lfWeight, FALSE); ! 76: SetDlgItemInt (hwnd, DIDITALIC , lplf->lfItalic, FALSE); ! 77: SetDlgItemInt (hwnd, DIDUNDERL , lplf->lfUnderline, FALSE); ! 78: SetDlgItemInt (hwnd, DIDSTRIKE , lplf->lfStrikeOut, FALSE); ! 79: SetDlgItemInt (hwnd, DIDCHARSE , lplf->lfCharSet, FALSE); ! 80: SetDlgItemInt (hwnd, DIDOUTPRE , lplf->lfOutPrecision, FALSE); ! 81: SetDlgItemInt (hwnd, DIDCLIPPR , lplf->lfClipPrecision, FALSE); ! 82: SetDlgItemInt (hwnd, DIDQUALIT , lplf->lfQuality, FALSE); ! 83: SetDlgItemInt (hwnd, DIDPITCHA , lplf->lfPitchAndFamily,FALSE); ! 84: SetDlgItemText (hwnd, DIDFACENA, lplf->lfFaceName); ! 85: ! 86: } break; ! 87: ! 88: ! 89: /**********************************************************************\ ! 90: * WMU_LFTODEMO ! 91: * ! 92: * lParam - pointer to LOGFONT structure. ! 93: * ! 94: * User message. Fill the input LOGFONT with the contents of the ! 95: * edit fields of dialog box. ! 96: \**********************************************************************/ ! 97: case WMU_LFTODEMO: { ! 98: BOOL success; ! 99: lplf = (LPLOGFONT) lParam; ! 100: ! 101: ! 102: lplf->lfHeight = GetDlgItemInt (hwnd, DIDHEIGHT, &success , FALSE); ! 103: lplf->lfHeight = GetDlgItemInt (hwnd, DIDHEIGHT, &success , FALSE); ! 104: lplf->lfWidth = GetDlgItemInt (hwnd, DIDWIDTH , &success , FALSE); ! 105: lplf->lfEscapement = GetDlgItemInt (hwnd, DIDESCAPE, &success , FALSE); ! 106: lplf->lfOrientation = GetDlgItemInt (hwnd, DIDORIENT, &success , FALSE); ! 107: lplf->lfWeight = GetDlgItemInt (hwnd, DIDWEIGHT, &success , FALSE); ! 108: lplf->lfItalic = (BYTE) GetDlgItemInt (hwnd, DIDITALIC, &success , FALSE); ! 109: lplf->lfUnderline = (BYTE) GetDlgItemInt (hwnd, DIDUNDERL, &success , FALSE); ! 110: lplf->lfStrikeOut = (BYTE) GetDlgItemInt (hwnd, DIDSTRIKE, &success , FALSE); ! 111: lplf->lfCharSet = (BYTE) GetDlgItemInt (hwnd, DIDCHARSE, &success , FALSE); ! 112: lplf->lfOutPrecision = (BYTE) GetDlgItemInt (hwnd, DIDOUTPRE, &success , FALSE); ! 113: lplf->lfClipPrecision = (BYTE) GetDlgItemInt (hwnd, DIDCLIPPR, &success , FALSE); ! 114: lplf->lfQuality = (BYTE) GetDlgItemInt (hwnd, DIDQUALIT, &success , FALSE); ! 115: lplf->lfPitchAndFamily =(BYTE) GetDlgItemInt (hwnd, DIDPITCHA, &success , FALSE); ! 116: GetDlgItemText (hwnd, DIDFACENA, lplf->lfFaceName, LF_FACESIZE); ! 117: ! 118: } break; ! 119: ! 120: ! 121: ! 122: /**********************************************************************\ ! 123: * WMU_DEMOTOTM ! 124: * ! 125: * lParam - pointer to TEXTMETRIC structure. ! 126: * ! 127: * User message. Take the input LOGFONT and fill the list box with ! 128: * strings. Turn off update before hand, then reenable when complete. ! 129: \**********************************************************************/ ! 130: case WMU_DEMOTOTM: { ! 131: char buffer[100]; ! 132: // WORD tabs; ! 133: ! 134: lptm = (LPTEXTMETRIC) lParam; ! 135: ! 136: SendDlgItemMessage (hwnd, DID_LISTBOX, WM_SETREDRAW, FALSE, 0); ! 137: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_RESETCONTENT, 0, 0); ! 138: // tabs = sizeof("tmDigitizedAspectY") *4; ! 139: // SendDlgItemMessage (hwnd, DID_LISTBOX, LB_SETTABSTOPS, 1, (LONG)&tabs); ! 140: ! 141: wsprintf (buffer, "tmHeight \t%d",(int) lptm->tmHeight ); ! 142: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 143: wsprintf (buffer, "tmAscent \t%d",(int) lptm->tmAscent ); ! 144: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 145: wsprintf (buffer, "tmDescent \t%d",(int) lptm->tmDescent ); ! 146: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 147: wsprintf (buffer, "tmInternalLeading\t%d",(int) lptm->tmInternalLeading ); ! 148: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 149: wsprintf (buffer, "tmExternalLeading\t%d",(int) lptm->tmExternalLeading ); ! 150: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 151: wsprintf (buffer, "tmAveCharWidth \t%d",(int) lptm->tmAveCharWidth ); ! 152: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 153: wsprintf (buffer, "tmMaxCharWidth \t%d",(int) lptm->tmMaxCharWidth ); ! 154: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 155: wsprintf (buffer, "tmWeight \t%d",(int) lptm->tmWeight ); ! 156: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 157: wsprintf (buffer, "tmOverhang \t%d",(int) lptm->tmOverhang ); ! 158: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 159: wsprintf (buffer, "tmDigitizedAspectX\t%d",(int) lptm->tmDigitizedAspectX ); ! 160: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 161: wsprintf (buffer, "tmDigitizedAspectY\t%d",(int) lptm->tmDigitizedAspectY ); ! 162: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 163: wsprintf (buffer, "tmItalic \t%d",(int) lptm->tmItalic ); ! 164: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 165: wsprintf (buffer, "tmUnderlined \t%d",(int) lptm->tmUnderlined ); ! 166: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 167: wsprintf (buffer, "tmStruckOut \t%d",(int) lptm->tmStruckOut ); ! 168: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 169: wsprintf (buffer, "tmFirstChar \t%d",(int) lptm->tmFirstChar ); ! 170: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 171: wsprintf (buffer, "tmLastChar \t%d",(int) lptm->tmLastChar ); ! 172: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 173: wsprintf (buffer, "tmDefaultChar \t%d",(int) lptm->tmDefaultChar ); ! 174: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 175: wsprintf (buffer, "tmBreakChar \t%d",(int) lptm->tmBreakChar ); ! 176: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 177: wsprintf (buffer, "tmPitchAndFamily\t%d",(int) lptm->tmPitchAndFamily ); ! 178: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 179: wsprintf (buffer, "tmCharSet \t%d",(int) lptm->tmCharSet ); ! 180: SendDlgItemMessage (hwnd, DID_LISTBOX, LB_ADDSTRING, 0, (LONG) buffer); ! 181: ! 182: SendDlgItemMessage (hwnd, DID_LISTBOX, WM_SETREDRAW, TRUE, 0); ! 183: InvalidateRect (hwnd, NULL, TRUE); ! 184: UpdateWindow (hwnd); ! 185: ! 186: } break; ! 187: ! 188: ! 189: } /* end switch */ ! 190: return (NULL); ! 191: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.