收录查询

1. GetDC()

GetDC

这个函数用来获取一个应用程序的CLIENT区的DC的句柄或者是整个屏幕区域,你可以使用获取的这个DC在程序的后面的部分来实现与GDI相关的绘图工作。(实际是在DC上绘图)

GetDCEx函数是对GetDC函数的补充, 它提供给一个应用程序更多的能力:如何获取CLIENT的剪取矩形。

HDC GetDC(
  HWND hWnd   // handle to window
);

程序片段:

case WM_CREATE:
  h = GetDC(hwnd);                      /使用GetDC(NULL或hwnd)获取DC的句柄
  
  GetTextMetrics(h, &tm);            //使用GetTextMetrics(DC, TEXTMETRIC)“文本的点阵度量表示”(结构体)
  cxChar = tm.tmAveCharWidth;  /取平均宽度
  cxCaps = (tm.tmPitchAndFamily &1 ? 3: 2) * cxChar /2;
  cyChar = tm.tmHeight + tm.tmExternalLeading;

  ReleaseDC(hwnd, hdc);
  
  return 0;

**************************************************************************
只要是WIN32API函数中与GDI有关的函数,其返回类型一般都是HDC类型,

对消息的处理都是在窗口函数(形式没有关系),只要是LRESULT CALLBACK并且参数

列表是(HWND, UINT , WPARAM, LPARAM)这2个条件满足就可以了

hdc = .....;   //这里右边的部分表示你要调用什么绘图函数在什么地方“画图”

基本的思想是:先把hdc(指示出:绘制的舞台和绘制图形时使用的“METRIC”)----属性设置

然后是使用hdc调用相关的“绘图函数”,简单点的有TextOut();

并在这个函数中描述清楚你绘制图形的过程:

BOOL TextOut(
  HDC hdc,           // handle to DC
  int nXStart,       // x-coordinate of starting position
  int nYStart,       // y-coordinate of starting position
  LPCTSTR lpString,  // character string
  int cbString       // number of characters
);

程序片段:
TextOut(hdc, r.left, r.top, "Defenestration can be hazardous", 4);

posted @ 2005-04-30 17:17  ->  阅读(973)  评论(0)    收藏  举报