|
|
1.1 ! root 1: /**************************************************************************\ ! 2: * dialogs.c -- dialog procedure support for uconvert ! 3: * ! 4: * Steve Firebaugh ! 5: * Microsoft Developer Support ! 6: * Copyright (c) 1992, 1993 Microsoft Corporation ! 7: * ! 8: \**************************************************************************/ ! 9: #define UNICODE ! 10: ! 11: ! 12: #include <windows.h> ! 13: #include "uconvert.h" ! 14: #include "install.h" ! 15: ! 16: ! 17: /* Define affecting the positioning of child windows in dialog. */ ! 18: #define DLGBORDER GetSystemMetrics (SM_CXFRAME)*2 ! 19: ! 20: /***************************************************************************\ ! 21: * FUNCTION: AboutProc ! 22: \***************************************************************************/ ! 23: LRESULT CALLBACK AboutProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ! 24: { ! 25: ! 26: switch (message) { ! 27: ! 28: case WM_COMMAND: ! 29: switch (LOWORD (wParam)) { ! 30: case IDCANCEL: ! 31: EndDialog (hwnd, FALSE); ! 32: break; ! 33: ! 34: case IDOK: ! 35: EndDialog (hwnd, TRUE); ! 36: break; ! 37: } ! 38: break; /* end WM_COMMAND */ ! 39: ! 40: ! 41: case WM_SYSCOMMAND: ! 42: if (LOWORD (wParam) == SC_CLOSE) ! 43: EndDialog (hwnd, FALSE); ! 44: break; ! 45: ! 46: } /* end switch */ ! 47: return FALSE; ! 48: } ! 49: ! 50: ! 51: ! 52: /***************************************************************************\ ! 53: * FUNCTION: ConversionOptionsProc ! 54: * ! 55: * Fill Dlg with state information on WM_INITDIALOG. ! 56: * Take it back down and change internal state on WM_COMMAND, IDOK. ! 57: * ! 58: * Global variables: ! 59: * gMBFlags ! 60: * gWCFlags ! 61: * glpDefaultChar ! 62: * glpUsedDefaultChar ! 63: * ! 64: \***************************************************************************/ ! 65: LRESULT CALLBACK ConversionOptionsProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ! 66: { ! 67: ! 68: switch (message) { ! 69: ! 70: /******************************************************************\ ! 71: * WM_INITDIALOG ! 72: * ! 73: * Set radio buttons appropriately. ! 74: \******************************************************************/ ! 75: case WM_INITDIALOG: ! 76: if (gMBFlags & MB_PRECOMPOSED) ! 77: SendDlgItemMessage (hwnd, DID_PRECOMPOSED, BM_SETCHECK, 1, 0); ! 78: ! 79: if (gMBFlags & MB_COMPOSITE) ! 80: SendDlgItemMessage (hwnd, DID_COMPOSITE, BM_SETCHECK, 1, 0); ! 81: ! 82: if (gMBFlags & MB_USEGLYPHCHARS) ! 83: SendDlgItemMessage (hwnd, DID_USEGLYPHCHARS, BM_SETCHECK, 1, 0); ! 84: ! 85: if (gMBFlags & WC_COMPOSITECHECK) ! 86: SendDlgItemMessage (hwnd, DID_COMPOSITECHECK, BM_SETCHECK, 1, 0); ! 87: ! 88: if (gMBFlags & WC_DISCARDNS) ! 89: SendDlgItemMessage (hwnd, DID_DISCARDNS, BM_SETCHECK, 1, 0); ! 90: ! 91: if (gMBFlags & WC_SEPCHARS) ! 92: SendDlgItemMessage (hwnd, DID_SEPCHARS, BM_SETCHECK, 1, 0); ! 93: ! 94: if (gMBFlags & WC_DEFAULTCHAR) ! 95: SendDlgItemMessage (hwnd, DID_DEFAULTCHAR, BM_SETCHECK, 1, 0); ! 96: ! 97: SendDlgItemMessage (hwnd, DID_EFDEFAULTCHAR, EM_LIMITTEXT, 1, 0); ! 98: SetDlgItemTextA (hwnd, DID_EFDEFAULTCHAR, glpDefaultChar); ! 99: ! 100: if (gUsedDefaultChar) ! 101: SendDlgItemMessage (hwnd, DID_USEDDEFAULTCHAR, BM_SETCHECK, 1, 0); ! 102: ! 103: ! 104: SetFocus (GetDlgItem (hwnd, IDOK)); ! 105: return FALSE; ! 106: ! 107: ! 108: case WM_COMMAND: ! 109: switch (LOWORD (wParam)) { ! 110: case IDCANCEL: ! 111: EndDialog (hwnd, FALSE); ! 112: break; ! 113: ! 114: /******************************************************************\ ! 115: * WM_COMMAND, IDOK ! 116: * ! 117: * Get state from radio buttons and others. ! 118: \******************************************************************/ ! 119: case IDOK: { ! 120: ! 121: if (SendDlgItemMessage(hwnd, DID_PRECOMPOSED, BM_GETCHECK, 0,0)) ! 122: gMBFlags |= MB_PRECOMPOSED; ! 123: else ! 124: gMBFlags &= ~MB_PRECOMPOSED; ! 125: ! 126: if (SendDlgItemMessage(hwnd, DID_COMPOSITE, BM_GETCHECK, 0,0)) ! 127: gMBFlags |= MB_COMPOSITE; ! 128: else ! 129: gMBFlags &= ~MB_COMPOSITE; ! 130: ! 131: if (SendDlgItemMessage(hwnd, DID_USEGLYPHCHARS, BM_GETCHECK, 0,0)) ! 132: gMBFlags |= MB_USEGLYPHCHARS; ! 133: else ! 134: gMBFlags &= ~MB_USEGLYPHCHARS; ! 135: ! 136: if (SendDlgItemMessage(hwnd, DID_DISCARDNS, BM_GETCHECK, 0,0)) ! 137: gMBFlags |= WC_DISCARDNS; ! 138: else ! 139: gMBFlags &= ~WC_DISCARDNS; ! 140: ! 141: if (SendDlgItemMessage(hwnd, DID_COMPOSITECHECK, BM_GETCHECK, 0,0)) ! 142: gMBFlags |= WC_COMPOSITECHECK; ! 143: else ! 144: gMBFlags &= ~WC_COMPOSITECHECK; ! 145: ! 146: if (SendDlgItemMessage(hwnd, DID_SEPCHARS, BM_GETCHECK, 0,0)) ! 147: gMBFlags |= WC_SEPCHARS; ! 148: else ! 149: gMBFlags &= ~WC_SEPCHARS; ! 150: ! 151: if (SendDlgItemMessage(hwnd, DID_DEFAULTCHAR, BM_GETCHECK, 0,0)) ! 152: gMBFlags |= WC_DEFAULTCHAR; ! 153: else ! 154: gMBFlags &= ~WC_DEFAULTCHAR; ! 155: ! 156: GetDlgItemTextA (hwnd, DID_EFDEFAULTCHAR, glpDefaultChar, 2); // CHAR + NULL ! 157: ! 158: EndDialog (hwnd, TRUE); ! 159: } break; ! 160: ! 161: ! 162: /******************************************************************\ ! 163: * WM_COMMAND, DID_* ! 164: * ! 165: * Manage radio button pattern. ! 166: \******************************************************************/ ! 167: case DID_PRECOMPOSED: ! 168: SendDlgItemMessage (hwnd, DID_PRECOMPOSED, BM_SETCHECK, TRUE, 0); ! 169: SendDlgItemMessage (hwnd, DID_COMPOSITE, BM_SETCHECK, FALSE, 0); ! 170: break; ! 171: ! 172: case DID_COMPOSITE: ! 173: SendDlgItemMessage (hwnd, DID_PRECOMPOSED, BM_SETCHECK, FALSE, 0); ! 174: SendDlgItemMessage (hwnd, DID_COMPOSITE, BM_SETCHECK, TRUE, 0); ! 175: break; ! 176: ! 177: } ! 178: break; /* end WM_COMMAND */ ! 179: ! 180: ! 181: ! 182: case WM_SYSCOMMAND: ! 183: if (LOWORD (wParam) == SC_CLOSE) ! 184: EndDialog (hwnd, FALSE); ! 185: break; ! 186: ! 187: } /* end switch */ ! 188: return FALSE; ! 189: } ! 190: ! 191: ! 192: ! 193: /***************************************************************************\ ! 194: * FUNCTION: SourceOptionsProc ! 195: * ! 196: * Fill Dlg with state information on WM_INITDIALOG. ! 197: * Take it back down and change internal state on WM_COMMAND, IDOK. ! 198: * ! 199: * Global variables: ! 200: * gTypeSource ! 201: * giSourceCodePage ! 202: * giDestinationCodePage ! 203: * ! 204: \***************************************************************************/ ! 205: LRESULT CALLBACK SourceOptionsProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ! 206: { ! 207: TCHAR buffer[50]; ! 208: ! 209: switch (message) { ! 210: ! 211: /******************************************************************\ ! 212: * WM_INITDIALOG ! 213: * ! 214: * Set radio buttons appropriately. ! 215: \******************************************************************/ ! 216: case WM_INITDIALOG: ! 217: SetWindowText (hwnd, TEXT("Interpret Source As...")); ! 218: ListInstalledTables (GetDlgItem (hwnd, DID_CODEPAGELIST),CB_ADDSTRING, TRUE); ! 219: if (gTypeSource == TYPEUNICODE) ! 220: SendDlgItemMessage (hwnd, DID_RBUNICODE, BM_SETCHECK, 1, 0); ! 221: ! 222: /* ! 223: * if gTypeSource == TYPECODEPAGE, then see if it is one of the ! 224: * standard radio buttons. If so, check the right one. ! 225: * if not, check, "other" and select correct entry in combobox. ! 226: */ ! 227: else if (gTypeSource == TYPECODEPAGE) { ! 228: if (giSourceCodePage == GetACP()) ! 229: SendDlgItemMessage (hwnd, DID_RBANSICP, BM_SETCHECK, 1, 0); ! 230: else if (giSourceCodePage == GetOEMCP()) ! 231: SendDlgItemMessage (hwnd, DID_RBOEMCP, BM_SETCHECK, 1, 0); ! 232: else { ! 233: SendDlgItemMessage (hwnd, DID_RBOTHERCP, BM_SETCHECK, 1, 0); ! 234: wsprintf (buffer, TEXT("%d"), giSourceCodePage); ! 235: SendDlgItemMessage (hwnd, DID_CODEPAGELIST, CB_SELECTSTRING, 0, (LPARAM)buffer); ! 236: } ! 237: } else { ! 238: // OK to not be specified here. Wait for user to make choice. ! 239: } ! 240: ! 241: ! 242: SetFocus (GetDlgItem (hwnd, IDOK)); ! 243: return FALSE; ! 244: ! 245: ! 246: case WM_COMMAND: ! 247: switch (LOWORD (wParam)) { ! 248: case IDCANCEL: ! 249: EndDialog (hwnd, FALSE); ! 250: break; ! 251: ! 252: /******************************************************************\ ! 253: * WM_COMMAND, IDOK ! 254: * ! 255: * Get state from radio buttons and others. ! 256: \******************************************************************/ ! 257: case IDOK: { ! 258: BOOL success; ! 259: ! 260: if (SendDlgItemMessage(hwnd, DID_RBUNICODE, BM_GETCHECK, 0,0)) { ! 261: gTypeSource = TYPEUNICODE; ! 262: } else if (SendDlgItemMessage(hwnd, DID_RBANSICP, BM_GETCHECK, 0,0)) { ! 263: gTypeSource = TYPECODEPAGE; ! 264: giSourceCodePage=GetACP(); ! 265: } else if (SendDlgItemMessage(hwnd, DID_RBOEMCP, BM_GETCHECK, 0,0)) { ! 266: gTypeSource = TYPECODEPAGE; ! 267: giSourceCodePage=GetOEMCP(); ! 268: } else if (SendDlgItemMessage(hwnd, DID_RBOTHERCP, BM_GETCHECK, 0,0)) { ! 269: gTypeSource = TYPECODEPAGE; ! 270: giSourceCodePage=GetDlgItemInt (hwnd, DID_CODEPAGELIST, &success, FALSE); ! 271: } else ! 272: gTypeSource = TYPEUNKNOWN; ! 273: EndDialog (hwnd, TRUE); ! 274: } break; ! 275: } ! 276: break; /* end WM_COMMAND */ ! 277: ! 278: ! 279: case WM_SYSCOMMAND: ! 280: if (LOWORD (wParam) == SC_CLOSE) ! 281: EndDialog (hwnd, FALSE); ! 282: break; ! 283: ! 284: } /* end switch */ ! 285: return FALSE; ! 286: } ! 287: ! 288: /***************************************************************************\ ! 289: * FUNCTION: DestinationOptionsProc ! 290: * ! 291: * Fill Dlg with state information on WM_INITDIALOG. ! 292: * Take it back down and change internal state on WM_COMMAND, IDOK. ! 293: * ! 294: * ! 295: * Global variables: ! 296: * gTypeSource ! 297: * giSourceCodePage ! 298: * giDestinationCodePage ! 299: * ! 300: \***************************************************************************/ ! 301: LRESULT CALLBACK DestinationOptionsProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ! 302: { ! 303: TCHAR buffer[50]; ! 304: ! 305: switch (message) { ! 306: ! 307: /******************************************************************\ ! 308: * WM_INITDIALOG ! 309: * ! 310: * Set radio buttons appropriately. ! 311: \******************************************************************/ ! 312: case WM_INITDIALOG: ! 313: SetWindowText (hwnd, TEXT("Convert Destination To...")); ! 314: ListInstalledTables (GetDlgItem (hwnd, DID_CODEPAGELIST),CB_ADDSTRING, TRUE); ! 315: ! 316: /* if source is unicode, destination will be code page. */ ! 317: if (gTypeSource == TYPEUNICODE) { ! 318: EnableWindow (GetDlgItem (hwnd, DID_RBUNICODE), FALSE); ! 319: ! 320: if (giDestinationCodePage == GetACP()) ! 321: SendDlgItemMessage (hwnd, DID_RBANSICP, BM_SETCHECK, 1, 0); ! 322: else if (giDestinationCodePage == GetOEMCP()) ! 323: SendDlgItemMessage (hwnd, DID_RBOEMCP, BM_SETCHECK, 1, 0); ! 324: else { ! 325: SendDlgItemMessage (hwnd, DID_RBOTHERCP, BM_SETCHECK, 1, 0); ! 326: wsprintf (buffer, TEXT("%d"), giDestinationCodePage); ! 327: SendDlgItemMessage (hwnd, DID_CODEPAGELIST, CB_SELECTSTRING, 0, (LPARAM)buffer); ! 328: } ! 329: ! 330: /* otherwise destination is unicode, so disable most of the checkboxes. */ ! 331: } else if (gTypeSource == TYPECODEPAGE) { ! 332: SendDlgItemMessage (hwnd, DID_RBUNICODE, BM_SETCHECK, 1, 0); ! 333: EnableWindow (GetDlgItem (hwnd, DID_RBANSICP), FALSE); ! 334: EnableWindow (GetDlgItem (hwnd, DID_RBOEMCP), FALSE); ! 335: EnableWindow (GetDlgItem (hwnd, DID_RBOTHERCP), FALSE); ! 336: EnableWindow (GetDlgItem (hwnd, DID_CODEPAGELIST), FALSE); ! 337: } else { ! 338: EndDialog (hwnd, FALSE); // shouldn't get here. ! 339: } ! 340: ! 341: SetFocus (GetDlgItem (hwnd, IDOK)); ! 342: return FALSE; ! 343: ! 344: ! 345: case WM_COMMAND: ! 346: switch (LOWORD (wParam)) { ! 347: case IDCANCEL: ! 348: EndDialog (hwnd, FALSE); ! 349: break; ! 350: ! 351: /******************************************************************\ ! 352: * WM_COMMAND, IDOK ! 353: * ! 354: * Get state from radio buttons and others. ! 355: \******************************************************************/ ! 356: case IDOK: { ! 357: BOOL success; ! 358: if (SendDlgItemMessage(hwnd, DID_RBUNICODE, BM_GETCHECK, 0,0)) { ! 359: // Do nothing. gTypeSource already implies dest <-> unicode. ! 360: } else if (SendDlgItemMessage(hwnd, DID_RBANSICP, BM_GETCHECK, 0,0)) { ! 361: giDestinationCodePage=GetACP(); ! 362: } else if (SendDlgItemMessage(hwnd, DID_RBOEMCP, BM_GETCHECK, 0,0)) { ! 363: giDestinationCodePage=GetOEMCP(); ! 364: } else if (SendDlgItemMessage(hwnd, DID_RBOTHERCP, BM_GETCHECK, 0,0)) { ! 365: giDestinationCodePage=GetDlgItemInt (hwnd, DID_CODEPAGELIST, &success, FALSE); ! 366: } ! 367: ! 368: EndDialog (hwnd, TRUE); ! 369: } break; ! 370: } ! 371: break; /* end WM_COMMAND */ ! 372: ! 373: case WM_SYSCOMMAND: ! 374: if (LOWORD (wParam) == SC_CLOSE) ! 375: EndDialog (hwnd, FALSE); ! 376: break; ! 377: ! 378: } /* end switch */ ! 379: return FALSE; ! 380: } ! 381: ! 382: ! 383: /***************************************************************************\ ! 384: * FUNCTION: ViewSourceProc ! 385: * ! 386: * Fill Text, Name, and Type information into the dialog. ! 387: * Set a proper font to display the text depending on what type it is. ! 388: * ! 389: \***************************************************************************/ ! 390: LRESULT CALLBACK ViewSourceProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ! 391: { ! 392: RECT rect; ! 393: ! 394: switch (message) { ! 395: ! 396: /******************************************************************\ ! 397: * WM_INITDIALOG ! 398: \******************************************************************/ ! 399: case WM_INITDIALOG: ! 400: ! 401: /* Text is unicode... use *W() variants of functions. */ ! 402: if (gTypeSource == TYPEUNICODE) { ! 403: WCHAR buffer[MAX_PATH]; ! 404: LOGFONTW logfont; ! 405: HFONT hFont; ! 406: ! 407: SetWindowTextW (GetDlgItem (hwnd, DID_TEXT), (LPCWSTR)pSourceData); ! 408: GetWindowTextW (hwndName0, buffer, MAX_PATH); ! 409: SetWindowTextW (GetDlgItem (hwnd, DID_NAME), buffer); ! 410: GetWindowTextW (hwndCodePage0, buffer, MAX_PATH); ! 411: SetWindowTextW (GetDlgItem (hwnd, DID_TYPE), buffer); ! 412: ! 413: GetObjectW (GetStockObject (SYSTEM_FONT), sizeof(LOGFONTW), &logfont); ! 414: logfont.lfCharSet = UNICODE_CHARSET; ! 415: lstrcpyW (logfont.lfFaceName, L"Lucida Sans Unicode"); ! 416: hFont = CreateFontIndirectW (&logfont); ! 417: SendMessageW (GetDlgItem (hwnd, DID_TEXT), WM_SETFONT, (WPARAM) hFont, 0); ! 418: ! 419: ! 420: /* Text is codepage... use *A() variants of functions. */ ! 421: } else { ! 422: char buffer[MAX_PATH]; ! 423: LOGFONTA logfont; ! 424: HFONT hFont; ! 425: ! 426: SetWindowTextA (GetDlgItem (hwnd, DID_TEXT), pSourceData); ! 427: GetWindowTextA (hwndName0, buffer, MAX_PATH); ! 428: SetWindowTextA (GetDlgItem (hwnd, DID_NAME), buffer); ! 429: GetWindowTextA (hwndCodePage0, buffer, MAX_PATH); ! 430: SetWindowTextA (GetDlgItem (hwnd, DID_TYPE), buffer); ! 431: ! 432: GetObjectA (GetStockObject (SYSTEM_FONT), sizeof(LOGFONTA), &logfont); ! 433: logfont.lfCharSet = giSourceCodePage; ! 434: lstrcpyA (logfont.lfFaceName, ""); ! 435: hFont = CreateFontIndirectA (&logfont); ! 436: SendMessageA (GetDlgItem (hwnd, DID_TEXT), WM_SETFONT, (WPARAM) hFont, 0); ! 437: ! 438: } ! 439: SetWindowText (hwnd, TEXT("View Source")); ! 440: GetClientRect (hwnd, &rect); ! 441: SendMessage (hwnd, WM_SIZE, 0, ! 442: MAKELPARAM ((rect.right - rect.left), (rect.bottom - rect.top))); ! 443: break; ! 444: ! 445: case WM_SIZE: { ! 446: HWND hwndText; ! 447: ! 448: hwndText = GetDlgItem (hwnd, DID_TEXT); ! 449: MoveWindow (hwndText, DLGBORDER, 60, (int) LOWORD(lParam) - 2*DLGBORDER, ! 450: (int) HIWORD(lParam) - 60 - DLGBORDER , TRUE); ! 451: } ! 452: ! 453: case WM_COMMAND: ! 454: switch (LOWORD (wParam)) { ! 455: case IDCANCEL: ! 456: case IDOK: ! 457: EndDialog (hwnd, TRUE); ! 458: } ! 459: break; /* end WM_COMMAND */ ! 460: ! 461: case WM_SYSCOMMAND: ! 462: if (LOWORD (wParam) == SC_CLOSE) ! 463: EndDialog (hwnd, FALSE); ! 464: break; ! 465: ! 466: } /* end switch */ ! 467: return FALSE; ! 468: } ! 469: ! 470: ! 471: ! 472: /***************************************************************************\ ! 473: * FUNCTION: ViewDestinationProc ! 474: * ! 475: * Fill Text, Name, and Type information into the dialog. ! 476: * Set a proper font to display the text depending on what type it is. ! 477: * ! 478: \***************************************************************************/ ! 479: LRESULT CALLBACK ViewDestinationProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) ! 480: { ! 481: RECT rect; ! 482: ! 483: switch (message) { ! 484: ! 485: /******************************************************************\ ! 486: * WM_INITDIALOG ! 487: \******************************************************************/ ! 488: case WM_INITDIALOG: ! 489: ! 490: /* Destination text is unicode... use *W() variants of functions. */ ! 491: if (gTypeSource != TYPEUNICODE) { ! 492: WCHAR buffer[MAX_PATH]; ! 493: LOGFONTW logfont; ! 494: HFONT hFont; ! 495: ! 496: SetWindowTextW (GetDlgItem (hwnd, DID_TEXT), (LPCWSTR)pDestinationData); ! 497: GetWindowTextW (hwndName1, buffer, MAX_PATH); ! 498: SetWindowTextW (GetDlgItem (hwnd, DID_NAME), buffer); ! 499: GetWindowTextW (hwndCodePage1, buffer, MAX_PATH); ! 500: SetWindowTextW (GetDlgItem (hwnd, DID_TYPE), buffer); ! 501: ! 502: GetObjectW (GetStockObject (SYSTEM_FONT), sizeof(LOGFONTW), &logfont); ! 503: logfont.lfCharSet = UNICODE_CHARSET; ! 504: lstrcpyW (logfont.lfFaceName, L"Lucida Sans Unicode"); ! 505: hFont = CreateFontIndirectW (&logfont); ! 506: SendMessageW (GetDlgItem (hwnd, DID_TEXT), WM_SETFONT, (WPARAM) hFont, 0); ! 507: ! 508: ! 509: /* Destination text is codepage... use *A() variants of functions. */ ! 510: } else { ! 511: char buffer[MAX_PATH]; ! 512: LOGFONTA logfont; ! 513: HFONT hFont; ! 514: ! 515: SetWindowTextA (GetDlgItem (hwnd, DID_TEXT), pDestinationData); ! 516: GetWindowTextA (hwndName1, buffer, MAX_PATH); ! 517: SetWindowTextA (GetDlgItem (hwnd, DID_NAME), buffer); ! 518: GetWindowTextA (hwndCodePage1, buffer, MAX_PATH); ! 519: SetWindowTextA (GetDlgItem (hwnd, DID_TYPE), buffer); ! 520: ! 521: GetObjectA (GetStockObject (SYSTEM_FONT), sizeof(LOGFONTA), &logfont); ! 522: logfont.lfCharSet = giDestinationCodePage; ! 523: lstrcpyA (logfont.lfFaceName, ""); ! 524: hFont = CreateFontIndirectA (&logfont); ! 525: SendMessageA (GetDlgItem (hwnd, DID_TEXT), WM_SETFONT, (WPARAM) hFont, 0); ! 526: ! 527: } ! 528: SetWindowText (hwnd, TEXT("View Destination")); ! 529: GetClientRect (hwnd, &rect); ! 530: SendMessage (hwnd, WM_SIZE, 0, ! 531: MAKELPARAM ((rect.right - rect.left),(rect.bottom - rect.top))); ! 532: ! 533: break; ! 534: ! 535: ! 536: case WM_SIZE: { ! 537: HWND hwndText; ! 538: ! 539: hwndText = GetDlgItem (hwnd, DID_TEXT); ! 540: MoveWindow (hwndText, DLGBORDER, 60, (int) LOWORD(lParam) - 2*DLGBORDER, ! 541: (int) HIWORD(lParam) - 60 - DLGBORDER , TRUE); ! 542: } ! 543: ! 544: case WM_COMMAND: ! 545: switch (LOWORD (wParam)) { ! 546: case IDCANCEL: ! 547: case IDOK: ! 548: EndDialog (hwnd, TRUE); ! 549: } ! 550: break; /* end WM_COMMAND */ ! 551: ! 552: case WM_SYSCOMMAND: ! 553: if (LOWORD (wParam) == SC_CLOSE) ! 554: EndDialog (hwnd, FALSE); ! 555: break; ! 556: ! 557: } /* end switch */ ! 558: return FALSE; ! 559: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.