获取设备尺寸
本帖最后由 spongebobyey 于 2019-10-9 08:05 编辑设置结构体#define NUMBERLINES (int)(sizeof(Sysmetrics)/sizeof(Sysmetrics))
struct
{
intiIndex;
TCHAR *szLabel;
TCHAR *szDesc;
}Sysmetrics[]=
{
SM_CMOUSEBUTTONS,TEXT("SM_CMOUSEBUTTONS"),
TEXT("arranged minimized windows"),
SM_CMONITORS, TEXT("SM_CMONITORS"),
TEXT("The number of display monitors on a desktop")
};
结构体中的值在GetSystemMetrics()函数中可以找到
在WINDPROC 中定义的局部变量
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
size_t iTarget;
int i;
TEXTMETRIC tm;
static int cxChar,cyChar,cxCaps;
设置字符的宽度,高度,大写宽度
case WM_CREATE:
hdc=GetDC(hWnd);
GetTextMetrics(hdc,&tm);
cxChar=tm.tmAveCharWidth;
cyChar=tm.tmHeight+tm.tmExternalLeading;
cxCaps=(tm.tmPitchAndFamily &1 ?3:2)*cxChar/2;
ReleaseDC(hWnd,hdc);
return 0;
break;
打印代码
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
for(i=0;i<NUMBERLINES;i++)
{
StringCchLength(Sysmetrics.szLabel,1024,&iTarget);
TextOut(hdc,0,cyChar*i,Sysmetrics.szLabel,iTarget);
StringCchLength(Sysmetrics.szDesc,1024,&iTarget);
TextOut(hdc,22*cxCaps,cyChar*i,Sysmetrics.szDesc,iTarget);
SetTextAlign(hdc,TA_RIGHT |TA_TOP);
StringCchPrintf(szBuffer,10,TEXT("%5d"),GetSystemMetrics(Sysmetrics.iIndex));
StringCchLength(szBuffer,10,&iTarget);
TextOut(hdc,22*cxCaps+50*cxChar,cyChar*i,szBuffer,iTarget);
SetTextAlign(hdc,TA_LEFT|TA_TOP);
}
EndPaint(hWnd, &ps);
break;
看看学习一下
页:
[1]