当前位置: 首页 > wzjs >正文

微表单网站广告公关公司

微表单网站,广告公关公司,wordpress文章页面title,书生网站书籍:《windows程序设计(第五版)》 环境:visual studio 2022 内容:输出文字->综合使用 说明:以下内容大部分来自腾讯元宝 1.建立空项目 编写第一个WINDOWS程序_visual studio,创建一个新的 windows应用程序-CSDN博客https:…

书籍:《windows程序设计(第五版)》

环境:visual studio 2022

内容:输出文字->综合使用

说明:以下内容大部分来自腾讯元宝

1.建立空项目

编写第一个WINDOWS程序_visual studio,创建一个新的 windows应用程序-CSDN博客https://blog.csdn.net/qq_20725221/article/details/146255703?spm=1001.2014.3001.55022.SYSMETS.h

结构体定义(未显式命名,直接定义并初始化数组。)->数组初始化(每项应为 (iIndex, szLabel, szDesc))

/*-----------------------------------------------SYSMETS.H -- System metrics display structure-----------------------------------------------*/
#pragma once#include <Windows.h>#define NUMLINES ((int) (sizeof sysmetrics / sizeof sysmetrics [0]))//此代码定义了一个匿名结构体数组 sysmetrics,用于存储 ​Windows 系统度量(System Metrics)​ 的索引、标签和描述。
//其目的是将系统度量常量(如屏幕宽度、高度)与对应的文本信息关联,便于后续动态查询和界面适配。
struct
{int     iIndex;TCHAR* szLabel;TCHAR* szDesc;
}
sysmetrics[] =
{SM_CXSCREEN,             TEXT("SM_CXSCREEN"),TEXT("Screen width in pixels"),SM_CYSCREEN,             TEXT("SM_CYSCREEN"),TEXT("Screen height in pixels"),SM_CXVSCROLL,            TEXT("SM_CXVSCROLL"),TEXT("Vertical scroll width"),SM_CYHSCROLL,            TEXT("SM_CYHSCROLL"),TEXT("Horizontal scroll height"),SM_CYCAPTION,            TEXT("SM_CYCAPTION"),TEXT("Caption bar height"),SM_CXBORDER,             TEXT("SM_CXBORDER"),TEXT("Window border width"),SM_CYBORDER,             TEXT("SM_CYBORDER"),TEXT("Window border height"),SM_CXFIXEDFRAME,         TEXT("SM_CXFIXEDFRAME"),TEXT("Dialog window frame width"),SM_CYFIXEDFRAME,         TEXT("SM_CYFIXEDFRAME"),TEXT("Dialog window frame height"),SM_CYVTHUMB,             TEXT("SM_CYVTHUMB"),TEXT("Vertical scroll thumb height"),SM_CXHTHUMB,             TEXT("SM_CXHTHUMB"),TEXT("Horizontal scroll thumb width"),SM_CXICON,               TEXT("SM_CXICON"),TEXT("Icon width"),SM_CYICON,               TEXT("SM_CYICON"),TEXT("Icon height"),SM_CXCURSOR,             TEXT("SM_CXCURSOR"),TEXT("Cursor width"),SM_CYCURSOR,             TEXT("SM_CYCURSOR"),TEXT("Cursor height"),SM_CYMENU,               TEXT("SM_CYMENU"),TEXT("Menu bar height"),SM_CXFULLSCREEN,         TEXT("SM_CXFULLSCREEN"),TEXT("Full screen client area width"),SM_CYFULLSCREEN,         TEXT("SM_CYFULLSCREEN"),TEXT("Full screen client area height"),SM_CYKANJIWINDOW,        TEXT("SM_CYKANJIWINDOW"),TEXT("Kanji window height"),SM_MOUSEPRESENT,         TEXT("SM_MOUSEPRESENT"),TEXT("Mouse present flag"),SM_CYVSCROLL,            TEXT("SM_CYVSCROLL"),TEXT("Vertical scroll arrow height"),SM_CXHSCROLL,            TEXT("SM_CXHSCROLL"),TEXT("Horizontal scroll arrow width"),SM_DEBUG,                TEXT("SM_DEBUG"),TEXT("Debug version flag"),SM_SWAPBUTTON,           TEXT("SM_SWAPBUTTON"),TEXT("Mouse buttons swapped flag"),SM_CXMIN,                TEXT("SM_CXMIN"),TEXT("Minimum window width"),SM_CYMIN,                TEXT("SM_CYMIN"),TEXT("Minimum window height"),SM_CXSIZE,               TEXT("SM_CXSIZE"),TEXT("Min/Max/Close button width"),SM_CYSIZE,               TEXT("SM_CYSIZE"),TEXT("Min/Max/Close button height"),SM_CXSIZEFRAME,          TEXT("SM_CXSIZEFRAME"),TEXT("Window sizing frame width"),SM_CYSIZEFRAME,          TEXT("SM_CYSIZEFRAME"),TEXT("Window sizing frame height"),SM_CXMINTRACK,           TEXT("SM_CXMINTRACK"),TEXT("Minimum window tracking width"),SM_CYMINTRACK,           TEXT("SM_CYMINTRACK"),TEXT("Minimum window tracking height"),SM_CXDOUBLECLK,          TEXT("SM_CXDOUBLECLK"),TEXT("Double click x tolerance"),SM_CYDOUBLECLK,          TEXT("SM_CYDOUBLECLK"),TEXT("Double click y tolerance"),SM_CXICONSPACING,        TEXT("SM_CXICONSPACING"),TEXT("Horizontal icon spacing"),SM_CYICONSPACING,        TEXT("SM_CYICONSPACING"),TEXT("Vertical icon spacing"),SM_MENUDROPALIGNMENT,    TEXT("SM_MENUDROPALIGNMENT"),TEXT("Left or right menu drop"),SM_PENWINDOWS,           TEXT("SM_PENWINDOWS"),TEXT("Pen extensions installed"),SM_DBCSENABLED,          TEXT("SM_DBCSENABLED"),TEXT("Double-Byte Char Set enabled"),SM_CMOUSEBUTTONS,        TEXT("SM_CMOUSEBUTTONS"),TEXT("Number of mouse buttons"),SM_SECURE,               TEXT("SM_SECURE"),TEXT("Security present flag"),SM_CXEDGE,               TEXT("SM_CXEDGE"),TEXT("3-D border width"),SM_CYEDGE,               TEXT("SM_CYEDGE"),TEXT("3-D border height"),SM_CXMINSPACING,         TEXT("SM_CXMINSPACING"),TEXT("Minimized window spacing width"),SM_CYMINSPACING,         TEXT("SM_CYMINSPACING"),TEXT("Minimized window spacing height"),SM_CXSMICON,             TEXT("SM_CXSMICON"),TEXT("Small icon width"),SM_CYSMICON,             TEXT("SM_CYSMICON"),TEXT("Small icon height"),SM_CYSMCAPTION,          TEXT("SM_CYSMCAPTION"),TEXT("Small caption height"),SM_CXSMSIZE,             TEXT("SM_CXSMSIZE"),TEXT("Small caption button width"),SM_CYSMSIZE,             TEXT("SM_CYSMSIZE"),TEXT("Small caption button height"),SM_CXMENUSIZE,           TEXT("SM_CXMENUSIZE"),TEXT("Menu bar button width"),SM_CYMENUSIZE,           TEXT("SM_CYMENUSIZE"),TEXT("Menu bar button height"),SM_ARRANGE,              TEXT("SM_ARRANGE"),TEXT("How minimized windows arranged"),SM_CXMINIMIZED,          TEXT("SM_CXMINIMIZED"),TEXT("Minimized window width"),SM_CYMINIMIZED,          TEXT("SM_CYMINIMIZED"),TEXT("Minimized window height"),SM_CXMAXTRACK,           TEXT("SM_CXMAXTRACK"),TEXT("Maximum draggable width"),SM_CYMAXTRACK,           TEXT("SM_CYMAXTRACK"),TEXT("Maximum draggable height"),SM_CXMAXIMIZED,          TEXT("SM_CXMAXIMIZED"),TEXT("Width of maximized window"),SM_CYMAXIMIZED,          TEXT("SM_CYMAXIMIZED"),TEXT("Height of maximized window"),SM_NETWORK,              TEXT("SM_NETWORK"),TEXT("Network present flag"),SM_CLEANBOOT,            TEXT("SM_CLEANBOOT"),TEXT("How system was booted"),SM_CXDRAG,               TEXT("SM_CXDRAG"),TEXT("Avoid drag x tolerance"),SM_CYDRAG,               TEXT("SM_CYDRAG"),TEXT("Avoid drag y tolerance"),SM_SHOWSOUNDS,           TEXT("SM_SHOWSOUNDS"),TEXT("Present sounds visually"),SM_CXMENUCHECK,          TEXT("SM_CXMENUCHECK"),TEXT("Menu check-mark width"),SM_CYMENUCHECK,          TEXT("SM_CYMENUCHECK"),TEXT("Menu check-mark height"),SM_SLOWMACHINE,          TEXT("SM_SLOWMACHINE"),TEXT("Slow processor flag"),SM_MIDEASTENABLED,       TEXT("SM_MIDEASTENABLED"),TEXT("Hebrew and Arabic enabled flag"),SM_MOUSEWHEELPRESENT,    TEXT("SM_MOUSEWHEELPRESENT"),TEXT("Mouse wheel present flag"),SM_XVIRTUALSCREEN,       TEXT("SM_XVIRTUALSCREEN"),TEXT("Virtual screen x origin"),SM_YVIRTUALSCREEN,       TEXT("SM_YVIRTUALSCREEN"),TEXT("Virtual screen y origin"),SM_CXVIRTUALSCREEN,      TEXT("SM_CXVIRTUALSCREEN"),TEXT("Virtual screen width"),SM_CYVIRTUALSCREEN,      TEXT("SM_CYVIRTUALSCREEN"),TEXT("Virtual screen height"),SM_CMONITORS,            TEXT("SM_CMONITORS"),TEXT("Number of monitors"),SM_SAMEDISPLAYFORMAT,    TEXT("SM_SAMEDISPLAYFORMAT"),TEXT("Same color format flag")
};

3.SYSMETS1.c

主要看WndProc()函数。


#include <Windows.h>
#include "SYSMETS.h"LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow)
{static TCHAR szAppName[] = TEXT("SysMets1");HWND hwnd;MSG msg;WNDCLASS wndclass;wndclass.style = CS_HREDRAW | CS_VREDRAW;wndclass.lpfnWndProc = WndProc;wndclass.cbClsExtra = 0;wndclass.cbWndExtra = 0;wndclass.hInstance = hInstance;wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);wndclass.lpszMenuName = NULL;wndclass.lpszClassName = szAppName;if (!RegisterClass(&wndclass)){MessageBox(NULL, TEXT("This program requires Windows NT!"), szAppName, MB_ICONERROR);return 0;}hwnd = CreateWindow(szAppName, TEXT("Get System Metrics No. 1"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL, NULL, hInstance, NULL);ShowWindow(hwnd, iCmdShow);UpdateWindow(hwnd);while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return msg.wParam;
}//此代码实现了一个系统度量信息展示窗口,通过 WndProc 处理窗口消息,动态获取并显示系统度量值(如屏幕尺寸、滚动条宽度等)。其核心功能包括:
//
//​初始化系统度量参数​(字符宽度、行高等)。
//​绘制系统度量表​(标签、描述、数值)。
//​响应窗口销毁事件。
LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{//cxChar(字符平均宽度)、cxCaps(大写字符宽度)、cyChar(行高),仅在窗口生命周期内有效。static int cxChar, cxCaps, cyChar;HDC hdc;int i;PAINTSTRUCT ps;TCHAR	szBuffer[10];TEXTMETRIC tm;switch (message){case WM_CREATE:hdc = GetDC(hwnd);				// 获取设备上下文GetTextMetrics(hdc, &tm);		// 获取字体度量cxChar = tm.tmAveCharWidth;		// 平均字符宽度//tm.tmPitchAndFamily & 1:判断字体是否为变宽字体(如等宽字体为0)。//cxCaps 计算:变宽字体为 3 / 2 cxChar,等宽字体为 2 / 2 cxChar。cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2;		// 大写字符宽度//cyChar 包含行高和行间距,确保文本垂直对齐。cyChar = tm.tmHeight + tm.tmExternalLeading;					// 行高(含行间距)ReleaseDC(hwnd, hdc);			// 释放设备上下文return 0;case WM_PAINT:hdc = BeginPaint(hwnd, &ps);				// 开始绘制/*布局逻辑:​标签列:X = 0,Y = cyChar * i(每行间距为行高)。​描述列:X = 22 * cxCaps(固定偏移),Y同上。​数值列:X = 22 * cxCaps + 40 * cxChar(标签宽度 + 固定偏移),右对齐。​数值格式化: % 5d 表示5位右对齐整数,适应不同数值长度。*/for (i = 0; i < NUMLINES; i++)				// 遍历系统度量数组{// 绘制标签(左对齐)TextOut(hdc, 0, cyChar * i, sysmetrics[i].szLabel, lstrlen(sysmetrics[i].szLabel));// 绘制描述(左对齐)TextOut(hdc, 22 * cxCaps, cyChar * i, sysmetrics[i].szDesc, lstrlen(sysmetrics[i].szDesc));SetTextAlign(hdc, TA_RIGHT | TA_TOP);		// 设置右对齐// 绘制数值(右对齐,带格式化)TextOut(hdc, 22 * cxCaps + 40 * cxChar, cyChar * i, szBuffer,wsprintf(szBuffer, TEXT("%5d"),GetSystemMetrics(sysmetrics[i].iIndex)));SetTextAlign(hdc, TA_LEFT | TA_TOP);		// 恢复左对齐}EndPaint(hwnd, &ps);		// 结束绘制return 0;case WM_DESTROY:PostQuitMessage(0);			// 发送退出消息return 0;}return DefWindowProc(hwnd, message, wParam, lParam);
}

4.运行效果

详细介绍TEXTMETRIC结构体-CSDN博客https://blog.csdn.net/qq_20725221/article/details/146535803?sharetype=blogdetail&sharerId=146535803&sharerefer=PC&sharesource=qq_20725221&spm=1011.2480.3001.8118 

http://www.dtcms.com/wzjs/552455.html

相关文章:

  • 黄金网站app大全百度验证网站
  • 云南省做网站开发的公司排名全网高清素材下载
  • 潍坊做网站好看seo优化师
  • 网站免备案营销网站制作流程
  • 怎么建设影视卡网站高端商务经纪网站建设
  • 酷站官网检查网站是否做网站地图
  • 做网站的基本条件不用付费全部免费的追剧软件
  • 柳州网站建设柳州郑州中森网站建设
  • 网站统计代码添加免费的国际网站建设
  • 如何搭建一个网站步骤舟山网大海网
  • 网站团队的建设网页美工设计图片
  • 公司网站模版tk网站
  • 一流的网站建设哪家好专门查企业的网站
  • 网站源码文件安装教程做饲料推广哪个网站好
  • 外文网站开发福建建设中心网站
  • vps可以做几个网站网页美工设计软件
  • 编程自学免费网站南昌网站建设好么
  • 关于网站建设建站都需要什么
  • 土巴兔全包装修怎么样seo网站优化培训厂家报价
  • 做seo网站标题重要吗混合式教学财务管理网站建设
  • 临沧永德网站建设电子商务公司上海比较有名的景观设计公司
  • 小白怎么学做网站东莞制作网站公司
  • 来个可以做渗透的网站软件项目外包网站
  • 用万网建设网站教程视频网页制作页面布局
  • 自建网站网址东莞视频课程网站建设
  • 巴中网站建设网站设计 扁平化
  • 如何做网站访问量的统计网站建设中系统实现
  • 网站建设公司如何拓宽业务免费ppt模板下载红色
  • 网站建设服务器需要钱吗南通企业免费建站
  • 建设用地规划许可证查询网站杭州餐饮vi设计