MISC.C
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * MISC.C
  3.  *
  4.  * Functions without any other reasonable home:
  5.  *  WindowTitleSet, RectConvertToHiMetric, RectConvertToDevice
  6.  *
  7.  * Copyright(c) Microsoft Corp. 1992-1994 All Rights Reserved
  8.  * Win32 version, January 1994
  9.  */
  10. #include <windows.h>
  11. #include <ole.h>
  12. #include "cosmo.h"
  13. /*
  14.  * WindowTitleSet
  15.  *
  16.  * Purpose:
  17.  *  Handles changing the window's caption bar depending on the file
  18.  *  that is loaded.
  19.  *
  20.  * Parameters:
  21.  *  hWnd            HWND of the window to change.
  22.  *  pszFile         LPSTR of the file loaded.
  23.  *
  24.  * Return Value:
  25.  *  none.
  26.  */
  27. void WINAPI WindowTitleSet(HWND hWnd, LPSTR pszFile)
  28.     {
  29.     char        szTitle[CCHPATHMAX];
  30.     wsprintf(szTitle, "%s - %s", (LPSTR)rgpsz[IDS_CAPTION], pszFile);
  31.     SetWindowText(hWnd, szTitle);
  32.     return;
  33.     }
  34. /*
  35.  * RectConvertToHiMetric
  36.  *
  37.  * Purpose:
  38.  *  Converts the contents of a rectangle from MM_TEXT into MM_HIMETRIC
  39.  *  specifically for use in converting a RECT of a window into
  40.  *  a RECT for a METAFILEPICT structure.
  41.  *
  42.  * Parameters:
  43.  *  hWnd            HWND of the window providing the display context
  44.  *  pRect           LPRECT containing the rectangle to convert.
  45.  *
  46.  * Return Value:
  47.  *  None.
  48.  */
  49. void WINAPI RectConvertToHiMetric(HWND hWnd, LPRECT pRect)
  50.     {
  51.     HDC      hDC;
  52.     POINT    pt;
  53.     hDC=GetDC(hWnd);
  54.     SetMapMode(hDC, MM_HIMETRIC);
  55.     //Convert upper left corner
  56.     pt.x=pRect->left;
  57.     pt.y=pRect->top;
  58.     DPtoLP(hDC, &pt, 1);
  59.     pRect->left=pt.x;
  60.     pRect->top=-pt.y;
  61.     //Convert lower right corner
  62.     pt.x=pRect->right;
  63.     pt.y=pRect->bottom;
  64.     DPtoLP(hDC, &pt, 1);
  65.     pRect->right=pt.x;
  66.     pRect->bottom=-pt.y;
  67.     ReleaseDC(hWnd, hDC);
  68.     return;
  69.     }
  70. /*
  71.  * RectConvertToDevice
  72.  *
  73.  * Purpose:
  74.  *  Converts the contents of a rectangle from MM_HIMETRIC into MM_TEXT
  75.  *  specifically for use in converting a RECT of an OLE object into
  76.  *  a RECT for a window.
  77.  *
  78.  * Parameters:
  79.  *  hWnd            HWND of the window providing the display context
  80.  *  pRect           LPRECT containing the rectangle to convert.
  81.  *
  82.  * Return Value:
  83.  *  None.
  84.  */
  85. void WINAPI RectConvertToDevice(HWND hWnd, LPRECT pRect)
  86.     {
  87.     HDC      hDC;
  88.     POINT    pt;
  89.     hDC=GetDC(hWnd);
  90.     SetMapMode(hDC, MM_HIMETRIC);
  91.     //Convert upper left corner
  92.     pt.x=pRect->left;
  93.     pt.y=pRect->bottom;
  94.     LPtoDP(hDC, &pt, 1);
  95.     pRect->left=pt.x;
  96.     pRect->bottom=pt.y;
  97.     //Convert lower right corner
  98.     pt.x=pRect->right;
  99.     pt.y=pRect->top;
  100.     LPtoDP(hDC, &pt, 1);
  101.     pRect->right=pt.x;
  102.     pRect->top=pt.y;
  103.     ReleaseDC(hWnd, hDC);
  104.     return;
  105.     }