获取资源中对话框的尺寸

咯咯咯啊啊啊 2014-11-24 09:34:08
现在我要实现一个功能,是在对话框创建之前,获得相应资源的显示大小,然后根据这个大小创建对话框。因为要创建的对话框是cformview,如果创建时指定的大小小于其本身显示大小时就会出现滚动条;并且由于要创建的子对话框,我还想根据子对话框的大小调整父对话框的尺寸,所以要实现这个问题应该是获取资源中相应对话框的尺寸,这如何实现呢。
...全文
287 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sinat_27372459 2015-05-26
  • 打赏
  • 举报
回复
调用GetWindowRect: GetWindowRect(hDlg, &rectDlg); cxDlg = rectDlg.right - rectDlg.left; cyDlg = rectDlg.bottom - rectDlg.top;
咯咯咯啊啊啊 2014-11-25
  • 打赏
  • 举报
回复
引用 10 楼 SXJIAKE 的回复:
...
谢谢解答,不过我通过其他方式避开了这个问题。
「已注销」 2014-11-24
  • 打赏
  • 举报
回复
引用 4 楼 schlafenhamster 的回复:
用 BOOL AdjustWindowRectEX(LPRECT lpRect,DWORD dwStyte;BOOL bMenu;DWORD dwExStyle) 指定对话框大小。
這只是根據客戶區大小和窗口樣式來計算完整的窗口尺寸而已,樓主說的是窗口還沒創建出來,就要預知其尺寸。
jianghandaxue 2014-11-24
  • 打赏
  • 举报
回复
没有这样用过,一般是创建时,制定其大小 还有你说创建时会有滚动条啊,要定制子对话框,这些都不是问题啊,自己调整大小控制,达到自己的理想大小
schlafenhamster 2014-11-24
  • 打赏
  • 举报
回复
用 BOOL AdjustWindowRectEX(LPRECT lpRect,DWORD dwStyte;BOOL bMenu;DWORD dwExStyle) 指定对话框大小。
「已注销」 2014-11-24
  • 打赏
  • 举报
回复
由于对话框资源里面的尺寸并不是最终窗口尺寸,而是会根据字体以及 DPI 进行相应调整的。 取得这个尺寸并不难,难得是即使你取得这个尺寸,也没法准确预知最终对话框的窗口尺寸。
咯咯咯啊啊啊 2014-11-24
  • 打赏
  • 举报
回复
引用 楼主 u011446209 的回复:
由于子对话框不只一个,而且界面可能有所更改,所以需要动态获取。
向立天 2014-11-24
  • 打赏
  • 举报
回复
资源对话框多大这个数值不是死的么 你是可以预设的啊
「已注销」 2014-11-24
  • 打赏
  • 举报
回复

#include <pshpack2.h>
typedef struct {
    WORD dlgVer;
    WORD signature;
    DWORD helpID;
    DWORD exStyle;
    DWORD style;
    WORD cDlgItems;
    short x;
    short y;
    short cx;
    short cy;
/*
    sz_Or_Ord menu;
    sz_Or_Ord windowClass;
    WCHAR title[titleLen];
    WORD pointsize;
    WORD weight;
    BYTE italic;
    BYTE charset;
    WCHAR typeface[stringLen];
*/
} DLGTEMPLATEEX;
#include <poppack.h>

BOOL GetDialogResourceSize(HINSTANCE hInstance, LPCTSTR lpResName, SIZE *lpSize, WORD wLanguage = 1033)
{
    if (lpSize != NULL) {
        HRSRC hResInfo = FindResourceEx(hInstance, RT_DIALOG, lpResName, wLanguage);
        if (hResInfo != NULL) {
            HGLOBAL hResData = LoadResource(hInstance, hResInfo);
            if (hResData != NULL) {
                DLGTEMPLATE *pdt = (DLGTEMPLATE *)LockResource(hResData); 
                if (pdt != NULL) {
                    DLGTEMPLATEEX *pdtx = (DLGTEMPLATEEX *)pdt;
                    if (pdtx->dlgVer == 1 && pdtx->signature == 0xFFFF) {
                        lpSize->cx = pdtx->cx;
                        lpSize->cy = pdtx->cy;
                    } else {
                        lpSize->cx = pdt->cx;
                        lpSize->cy = pdt->cy;
                    }
                    return TRUE;
                } 
            } 
        }
    }
    return FALSE; 
}
SIZE size = { 0 };
// 主程序 EXE 直接傳 NULL,然後對話框名稱或者 ID 即可,如需指定語言比如 2052 傳最後一個參數。
if (GetDialogResourceSize(NULL, (LPCTSTR)IDD_DIALOG, &size)) {
    printf("%d, %d.\n", size.cx, size.cy);
}
咯咯咯啊啊啊 2014-11-24
  • 打赏
  • 举报
回复
引用 8 楼 wxhxj0268 的回复:
你显然没有搞清楚我的意图,不过还是谢谢关注。 up
笨笨仔 2014-11-24
  • 打赏
  • 举报
回复
引用 楼主 u011446209 的回复:
现在我要实现一个功能,是在对话框创建之前,获得相应资源的显示大小,然后根据这个大小创建对话框。因为要创建的对话框是cformview,如果创建时指定的大小小于其本身显示大小时就会出现滚动条;并且由于要创建的子对话框,我还想根据子对话框的大小调整父对话框的尺寸,所以要实现这个问题应该是获取资源中相应对话框的尺寸,这如何实现呢。
先预设一个值,需要改动时可用 MoveWindow() 进行修改
咯咯咯啊啊啊 2014-11-24
  • 打赏
  • 举报
回复
引用 3 楼 SXJIAKE 的回复:
....由于对话框资源里面的尺寸并不是最终窗口尺寸.....
资源对话框的尺寸确实不是最终的显示尺寸,但是在其他因素固定的情况下,总是跟显示尺寸存在一定的关系的,这可以后面再进行转换。那请问如何动态获取资源对话框的尺寸呢。
前言 第1章 消息框和对话框 1.如何在窗口程序创建消息框 2.如何使用资源字符串设置消息框内容 3.如何在消息框动态显示资源字符串 4.如何设置消息提示框的标题文字 5.如何使消息提示框的标题右对齐 6.如何在消息提示框绘制表格 7.如何在消息提示框设置图标 8.如何在消息提示框显示问号图标 9.如何在消息提示框设置按钮 10.如何在消息提示框显示“是”、“否”按钮 11.如何在消息提示框显示“重试”、“取消”按钮 12.如何设置消息提示框的默认选择按钮 13.如何确定用户在消息框选择的按钮 14.如何设置“文件”对话框的标题文字 15.如何设置“文件”对话框的过滤器 16.如何设置“文件”对话框的初始目录 17.如何设置“文件”对话框的初始文件名 18.如何使“文件”对话框自动添加扩展名 19.如何实现“文件”对话框的多重选择功能 20.如何在“文件”对话框选择多个文件 21.如何从“文件”对话框获取文件标题名 22.如何从“文件”对话框获取文件扩展名 23.如何在“文件”对话框预览位图文件 24.如何创建一个文件“保存”对话框 25.如何在程序启动时弹出“文件”对话框 26.如何从“文件夹”对话框选择文件夹 27.如何在“文件夹”对话框新建文件夹 28.如何使用“颜色”对话框设置颜色 29.如何在“颜色”对话框显示帮助按钮 30.如何禁止显示“颜色”对话框的自定义颜色 31.如何禁止“颜色”对话框的自定义颜色按钮 32.如何使用“字体”对话框设置字体和颜色 33.如何使用“查找与替换”对话框 34.如何显示操作系统默认的“关于”对话框 第2章 常用控件和组件 35.如何设置按钮控件的标签文本 36.如何设置按钮控件的显示字体 37.如何动态禁用和启用按钮控件 38.如何动态隐藏和显示按钮控件 39.如何在按钮控件上动态加载图标 40.如何在按钮控件上动态加载位图 4 1.如f可制作图标和文本共存的按钮 42.如何制作不规则的多边形按钮 43.如何制作GIF动画效果的按钮 44.如何制作AVI视频效果的按钮 45.如何在程序动态创建按钮控件 46.如何在视图窗口创建按钮控件 47.如何获取鼠标指向的按钮控件标题 48.如何创建文本和颜色共存的ComboBox 49.如何创建自动完成列表项的ComboBox 50.如何使ComboBox控件自动适应列表项 5l.如何使ComboBox控件自动装入文件名列表 52.如何在编辑框限制输入的字符类型 53.如何为编辑框添加自动完成匹配功能 54.如何设置编辑框的背景颜色和文本颜色 55.如何使编辑框的宽度自动适应窗体大小 56.如何获取在编辑框选择的文本内容 57.如何获取在编辑框显示的文本行数 58.如何重置编辑框默认的右键菜单 59.如何显示载有RichEdit控件的对话框 60.如何在RichEdit实现查找和定位字符 61.如何在RichEdit混合显示图片和文本 62.如何使List列表控件支持整行选择 63.如何使用List列表控件填充表格数据 64.如何使用数据库记录填充List列表控件 65.如何创建单元格可编辑的List列表控件 66.如何在ListBox查找指定的字符串 67.如何为超长的ListBox列表项添加提示 68.如何将ListBox转换成CheckListBox 69.如何在视图窗口绘制ListBox控件 70.如何使用Progress控件显示完成进度 71.如何使用Scroll控件控制滚动范围值 72.如何使用Slider控件控制滑动刻度值 73.如何使用Tab标签页(选项卡)控件 74.如何使用Tree控件显示目录树形结构 75.如何为树控件的子节点添加复选功能 76.如何为控件添加浮动提示窗口功能 77.如何使用回车键切换窗体控件焦点 78.如何遍历应用程序窗体的各个控件 79.如何使窗体的控件跟随鼠标移动而移动 80.如何设置静态文本控件的背景和文本颜色 81.如何通过控件实现鼠标拖动文本效果 第3章 标题栏和菜单栏 82.如何获取程序窗口标题栏的高度 83.如何获取程序窗口标题栏的按钮尺寸 84.如何获取程序窗口标题栏的文字 85.如何获取程序窗口标题栏的文字颜色 86.如何设置程序窗口标题栏的文字颜色 87.如何在窗口标题栏滚动显示文字 88.如何在对话框程序设置标题栏文字 89.如何在单文档程序设置标题栏文字 90.如何禁止在窗口标题栏上显示文档名 91.如何自定义单文档程序窗口的标题栏 92.如何取消单文档程序标题栏的右键菜单 93.如何隐藏或显示应用程序的标题栏 94.如何获取IE浏览器窗口的标题栏文字 95.如何修改IE浏览器的标题栏内容 96.如何禁止标题栏响应鼠标双击事件 97.如何在标题栏右键菜单新增菜单项 98.如何禁止单文档程序的关闭按钮 99.如何禁止单文档程序的最大化按钮 100.如何禁止单文档程序的最小化按钮 101.如何获取顶层菜单所占的行数 102.如何获取单文档程序菜单栏的高度 103.如何获取菜单项的标题文本内容 104.如何以渐变色绘制选择的菜单项 105.如何在组菜单项的左侧绘制纵向标题 106.如何在菜单项同时显示图标和文本 107.如何在单文档程序主菜单删除菜单 108.如何在单文档程序主菜单增加菜单 109.如何启用和禁用主菜单组的子菜单 110.如何删除单文档程序的主菜单 111.如何根据数据库记录动态创建菜单 112.如何取消无消息响应菜单的状态限制 113.如何显示或隐藏菜单项的复选标记 114.如何创建单选按钮效果的菜单组 115.如何在“最近的文件”子菜单显示记录 116.如何在视图窗口创建弹出式跟踪菜单 117.如何在视图窗口创建上下文快捷菜单 118.如何禁止运行默认系统菜单按钮命令 119.如何设置默认系统菜单的字体为粗体 120.如何为默认系统菜单文字添加下划线 121.如何增加对话框应用程序的系统菜单项 122.如何删除对话框程序的系统菜单项 l23.如何在对话框应用程序加载菜单 124.如何为不同控件添加不同的右键菜单 125.如何在操作系统任务栏上添加托盘菜单 126.如何触发操作系统的“开始”菜单 127.如何隐藏IE浏览器的右键菜单组 第4章 工具栏和状态栏 128.如何获取工具栏的图标资源 129.如何在工具栏上设置背景图像 130.如何在工具栏上加载动画窗口 131.如何在工具栏上加载组合框控件 132.如何在工具栏上加载孚体组合框 133.如何为工具栏添加动态真彩按钮 134.如何为工具栏按钮设置下拉箭头 135.如何为工具栏按钮添加下压效果 136.如何在工具栏上显示图标和文字 137.如何设置工具栏按钮的标题文字 138.如何设置工具栏按钮的提示信息 139.如何为对话框工具栏按钮添加提示 140.如何隐藏工具栏按钮的提示信息 141.如何在工具栏上增加删除按钮 142.如何动态隐藏或显示工具栏按钮 143.如何动态启用或禁用工具栏按钮 144.如何动态改变工具栏按钮的位置 145.如何对工具栏的按钮进行分组 146.如何在对话框程序加载工具栏 147.如何隐藏或显示应用程序的工具栏 148.如何在程序主窗口停靠工具栏 149.如何使用对话栏实现工具栏效果 150.如何在IE浏览器工具栏上添加按钮 l51.如何使用代码设置工具栏图标 152.如何使用代码获取工具栏指针 153.如何使用代码获取状态栏指针 154.如何隐藏或显示应用程序的状态栏 155.如何在状态栏增加新的窗格 156.如何更新状态栏窗格的显示内容 157.如何同步状态栏与对话框窗体的改变 158.如何在状态栏窗格显示当前时间 159.如何在状态栏窗格显示鼠标位置 160.如何在状态栏窗格滚动显示文本 161.如何在状态栏窗格加载进度条 162.如何在状态栏窗格加载图像 163.如何在状态栏窗格播放视频动画 第5章 光标和图标的应用 164.如何获取系统默认的光标大小 165.如何装入操作系统预置的光标 166.如何设置当前程序显示的光标 167.如何创建沙漏效果的等待光标 168.如何使用十字光标定位画线坐标 169.如何使用动画文件设置程序光标 170.如何捕捉光标指向的热区范围 171.如何将光标限制在指定范围内 172.如何获取光标当前的活动范围 173.如何获取系统默认的图标大小 174.如何获取可执行文件的图标 175.如何提取动态链接库的图标 176.如何提取图标文件的图标 177.如何以发送消息方式设置图标 178.如何使程序标题栏的图标旋转 179.如何在操作系统托盘设置图标 第6章 程序主窗口界面 180.如何创建一个向导式的对话框窗体 181.如何创建一个属性页的对话框窗体 182.如何创建列表视图类型的程序窗体 183.如何创建不规则的对话框窗体 184.如何创建圆角状的非矩形窗体 185.如何使用文字线条填充窗体轮廓 186.如何根据图片的形状创建程序窗体 187.如何在窗体创建切分多视图窗口 188.如何在窗体创建切分同视图窗口 189.如何判断程序窗体是否为切分窗体 190.如何设置单文档程序窗体的背景颜色 191.如何在对话框窗体创建渐变色背景 192.如何随机更换对话框窗体的背景图像 193.如何设置HTML对话框窗体的背景图像 l94.如何获取默认的程序窗体边界宽度 195.如何获取窗体水平滚动条箭头宽度 196.如何获取窗体垂直滚动条箭头宽度 197.如何设置多文档程序的主窗口标题 198.如何设置多文档程序的子窗口标题 199.如何设置多文档程序的主窗口图标 200.如何设置多文档程序的子窗口图标 201.如何限制多文档程序子窗口的大小 202.如何禁止用户拖动标题栏移动窗体 203.如何闪烁应用程序窗体的标题栏 204.如何定制窗体的边框线和标题栏 205.如何拖动没有标题栏的程序窗体. 206.如何拖动非标题栏区域移动窗体 207.如何拖动对话框主窗体移动程序 208.如何动态隐藏或显示应用程序窗体 209.如何动态移动和改变程序窗体的位置 210.如何动态改变应用程序窗口的大小 211.如何限制改变应用程序窗口的大小 212.如何限制应用程序窗口的缩放范围 213.如何固定单文档程序窗体的大小 214.如何使用网页作为程序的主窗体 215.如何发送消息最大化显示程序窗口 216.如何发送消息最小化隐藏程序窗口 217.如何发送消息还原(恢复)程序窗口 218.如何使MDI程序子窗口最大化启动 219.如何使SDI程序窗口最大化启动 220.如何使SDI程序窗口最小化启动 221.如何以不同方式居显示程序窗口 222.如何使单文档程序窗口最顶层显示 223.如何实现全屏显示应用程序窗口 224.如何使程序窗口以任意透明度显示 225.如何透明显示程序窗口的部分区域 226.如何将程序的窗口缩放到托盘显示 227.如何获取在任务栏显示的窗口程序 228.如何将其他窗口程序调至前台显示 229.如何以淡入的效果显示程序窗口 230.如何以淡出的效果隐藏程序窗口 231.如何以扩展的效果显示程序窗口 232.如何以动画收缩效果隐藏程序窗口 233.如何以扩展收缩效果展开程序窗口 234.如何以异步方式控制显示程序窗口 235.如何设置对话框程序窗口的启动位置 236.如何在上次关闭位置启动程序窗体 237.如何显示和关闭非模式对话框 238.如何在对话框程序加入闪屏效果 239.如何在单文档程序加入闪屏效果 240.如何使程序窗口自动适应图像尺寸 241.如何使用桌面区域填充程序窗口 242.如何在程序视图窗口添加插入符 243.如何实现QQ抽屉导航效果的界面 244.如何使用树形视图导航程序界面 第7章 程序管理和控制 245.如何捕获按下的Home等功能键 246.如何捕获按下的Air或Shift+Alt组合键 247.如何捕获按下的Ctrl或Clrl+Alt组合键 248.如何捕获按下的Ctrl或Ctrl+Shift组合键 249.如何捕获用户按下键盘的任一按键 250.如何使用钩子技术监视键盘的按键操作 251.如何使用小键盘数字键模拟鼠标单击 252.如何禁止使用Esc键关闭对话框程序 253.如何禁止使用Air+F4组合键关闭程序 254.如何使用回车键切换编辑框的输入焦点 255.如何为应用程序自定义加速键 256.如何创建热键及其消息处理函数 257.如何判断是否同时按下了鼠标键和Ctrl键 258.如何判断鼠标按键是否单击了标题栏 259.如何跟踪显示鼠标移动的当前位置 260.如何在桌面上创建应用程序快捷方式 261.如何查询快捷方式所属的源程序名称 262.如何禁止在任务栏显示单文档程序标题 263.如何禁止多文档程序启动时创建新文档 264.如何直接以发送消息方式关闭程序 265.如何重定向菜单消息命令到对话框 266.如何添加命令响应范围消息处理函数 267.如何在应用程序创建自定义消息 268.如何在应用程序寄送自定义消息 269.如何使用定时器响应间隔发生的操作 270.如何使用互斥量禁止运行多个实例 271.如何使用映射文件禁止运行多个实例 272.如何在应用程序执行其他应用程序 273.如何查找当前系统停止响应的程序 274.如何判断指定窗口程序是否已经运行 275.如何使单文档程序启动时显示对话框 276.如何在程序运行时禁止关闭计算机 277.如何在关闭单文档程序时给予提示 278.如何处理Windows程序的命令行参数 279.如何在应用程序运行命令行命令 280.如何获取执行程序的版权声明信息 281.如何创建最简单的MFC应用程序 282.如何使:MFC程序架构支持一档多视 283.如何在MFC:程序浏览PDF格式文件 第8章 打印机和打印实现 第9章 进程和线程管理 第10章 文件读写操作 第11章 文件和文件夹管理 第12章 字符串和数据转换 第13章 操作系统维护 第14章 计算机设备管理 第15章 文字和图像显示 第16章 音频和视频 第17章 网络通信 第18章 数据库管理 第19章 数据库访问 第20章 数据库查询 第21章 Word和Excel应用 第22章 WMI查询和管理 第23章 注册表综合应用
第1部分 基础知识   第1章 起步   1.1 Windows环境   1.1.1 Windows简史   1.1.2 Windows的方方面面   1.1.3 动态链接   1.2 Windows编程选项   1.2.1 API及内存管理模式   1.2.2 语言选择   1.2.3 编程环境   1.2.4 API文档   1.3 你的第一个Windows程序   1.3.1 字符模式   1.3.2 Windows对应程序   1.3.3 头文件   1.3.4 程序入口   1.3.5 MessageBox函数   1.3.6 编译、链接及运行   第2章Unicode简介   2.1 字符集简史   2.1.1 美国标准   2.1.2 美国以外的世界   2.1.3 扩展ASCII   2.1.4 双字节字符集   2.1.5 Unicode的解救方案   2.2 宽字符和c语言   2.2.1 char数据类型   2.2.2 更宽的字符   2.2.3 宽字符库函数   2.2.4 维护一个源代码文件   2.3 宽字符和Windows   2.3.1 Windows头文件的类型   2.3.2 Windows函数调用   2.3.3 Windows的字符串函数   2.3.4 在Windows使用printf   2.3.5 格式化的消息框   2.3.6 国际化之于本书   第3章 窗口与消息   3.1 窗口的创建   3.1.1 系统结构概述   3.1.2 HELLOWIN程序   3.1.3 通盘考虑   3.1.4 窗口类的注册   3.1.5 窗口的创建   3.1.6 窗口的显示   3.1.7 消息循环   3.1.8 窗口过程   3.1.9 消息的处理   3.1.10 声音文件的播放   3.1.11 WM_PAINT消息   3.1.12 WM_DESTROY消息   3.2 Windows编程的若干难点   3.2.1 究竟是谁调用谁   3.2.2 队列消息和非队列消息   3.2.3 速战速决   第4章 文本输出   4.1 绘制和重绘   4.1.1 WM_PAINT消息   4.1.2 有效矩形和无效矩形   4.2 GDI简介   4.2.1 设备环境   4.2.2 获取设备环境句柄:方法一   4.2.3 绘制信息结构   4.2.4 获取设备环境句柄:方法二   4.2.5 TEXTOUT函数详解   4.2.6 系统字体   4.2.7 字符大小   4.2.8 文本尺寸的度量   4.2.9 文本的格式化   4.2.10 综合使用   4.2.11 SYSMETSl.C窗口过程   4.2.12 空间不够   4.2.13 客户区的尺寸   4.3 滚动条   4.3.1 滚动条的范围和位置   4.3.2 滚动条消息   4.3.3 加入滚动条的SYSMET   4.3.4 程序的绘制代码的结构   4.4 效果更好的滚动   4.4.1 滚动条信息函数   4.4.2 最远可以卷动到哪里?   4.4.3 新的SYSMETS   4.4.4 可我不想用鼠标   第5章 绘图基础   5.1 GDI的结构   5.1.1 GDI原理   5.1.2 GDI函数调用   5.1.3 GDI的基本图形   5.1.4 其他   5.2 设备环境   5.2.1 获取设备环境句柄   5.2.2 获取设备环境的信息   5.2.3 DEVCAPSl程序   5.2.4 设备的尺寸   5.2.5 色彩ABC   5.2.6 设备环境属性   5.2.7 保存设备环境   5.3 点和线的绘制   5.3.1 设定像素   5.3.2 直线   5.3.3 边框绘制函数   5.3.4 贝塞尔样条曲线   5.3.5 使用现有画笔   5.3.6 创建、选择和删除画笔   5.3.7 填充空隙   5.3.8 绘图模式   5.4 绘制填充区域   5.4.1 Polygon函数和多边形填充模式   5.4.2 用画刷填充内部   5.5 GDI映射模式   5.5.1 设备坐标和逻辑坐标   5.5.2 设备坐标系统   5.5.3 视口和窗口   5.5.4 使用MMTEXT   5.5.5 度量映射模式   5.5.6 自定义的映射模式   5.5.7 WHATSIZE程序   5.6 矩形、区域和剪裁   5.6.1 处理矩形   5.6.2 随机矩形   5.6.3 建立和绘制区域   5.6.4 矩形与区域的剪裁   5.6.5 CLOVER程序   第6章 键盘   6.1 键盘基础   6.1.1 忽略键盘   6.1.2 谁获得了焦点?   6.1.3 队列和同步   6.1.4 击键和字符   6.2 击键消息   6.2.1 系统键击和非系统键击   6.2.2 虚拟键代码   6.2.3 1param信息   6.2.4 转义状态   6.2.5 使用击键消息   6.2.6 为SYSMETS加上键盘处理功能   6.3 字符消息   6.3.1 四类字符消息   6.3.2 消息排序   6.3.3 控制字符的处理   6.3.4 死字符消息   6.4 键盘消息和字符集   6.4.1 KEYVIEW1程序   6.4.2 非英语键盘问题   6.4.3 字符集和字体   6.4.4 Unicode解决方案   6.4.5 TrueType字体和大字体   6.5 插入符号(不是光标)   6.5.1 一些关于插入符号的函数   6.5.2 TYPER程序   第7章 鼠标   7.1 鼠标的基础知识   7.1.1 一些基本术语   7.1.2 鼠标的复数形式是什么?   7.2 客户区鼠标消息   7.2.1 简单的鼠标处理示例   7.2.2 处理Shift键   7.2.3 鼠标双击   7.3 非客户区鼠标消息   7.3.1 击测试消息   7.3.2 消息引发消息   7.4 程序的击测试   7.4.1 一个假想的例子   7.4.2 一个简单的程序   7.4.3 使用键盘模仿鼠标操作   7.4.4 在CHECKER增加键盘接口   7.4.5 在击测试使用子窗口   7.4.6 CHECKER程序的子窗口   7.4.7 子窗口和键盘   7.5 捕获鼠标   7.5.1 设计一个矩形   7.5.2 捕获的解决方案   7.5.3 BLOKOUT2程序   7.6 鼠标的滚轮   第8章 计时器   8.1 计时器的基本知识   8.1.1 系统和计时器   8.1.2 计时器消息不是异步的   8.2 使用计时器的三种方法   8.2.1 方法一   8.2.2 方法二   8.2.3 方法三   8.3 使用计时器作为时钟   8.3.1 数字时钟   8.3.2 获取当前时间   8.3.3 显示数字和冒号   8.3.4 考虑国际化   8.3.5 模拟时钟   8.4 在状态报告上使用计时器   第9章 子窗口控件   9.1 按钮类   9.1.1 创建子窗口   9.1.2 子窗口传递信息给父窗口   9.1.3 父窗口传递信息给子窗口   9.1.4 按钮   9.1.5 复选框   9.1.6 单选按钮   9.1.7 组合框   9.1.8 改变按钮文本   9.1.9 可见的按钮和启用的按钮   9.1.10 按钮和输入焦点   9.2 控件和颜色   9.2.1 系统颜色   9.2.2 按钮的颜色   9.2.3 WMCTLCOLORBTN消息   9.2.4 自绘按钮   9.3 静态类   9.4 滚动条类   9.4.1 COLORS1程序   9.4.2 自动键盘接口   9.4.3 窗口子类   9.4.4 背景着色   9.4.5 给滚动条和静态文本着色   9.5 编辑类   9.5.1 编辑类的样式   9.5.2 编辑控件的通知消息   9.5.3 使用编辑控件   9.5.4 传递给编辑控件的消息   9.6 列表框类   9.6.1 列表框的样式   9.6.2 向列表框添加字符串   9.6.3 项目的选择和提取   9.6.4 接收来自列表框的消息   9.6.5 简单的列表框程序   9.6.6 列出文件   9.6.7 Windows的HEAD程序   第10章 菜单和其他资源   10.1 图标、鼠标指针、字符串和自定义资源   10.1.1 向程序添加图标   10.1.2 获得图标的句柄   10.1.3 在应用程序使用图标   10.1.4 使用自定义鼠标指针   10.1.5 字符串资源   10.1.6 自定义资源   10.2 菜单   10.2.1 和菜单有关的概念   10.2.2 菜单结构   10.2.3 定义菜单   10.2.4 在程序引用菜单   10.2.5 菜单和消息   10.2.6 范例程序   10.2.7 菜单设计的规范   10.2.8 定义菜单的繁琐方式   10.2.9 浮动弹出菜单   10.2.1 0使用系统菜单   10.2.1 1改变菜单   10.2.1 2其他菜单命令   10.2.1 3菜单的另类用法   10.3 键盘加速键   10.3.1 为什么你应该使用键盘加速键   10.3.2 指定加速键的一些规则   10.3.3 加速键表   10.3.4 加载加速键表   10.3.5 翻译按键   10.3.6 接收加速键消息   10.3.7 带有菜单和加速键的POPPAD程序   10.3.8 启用菜单项   10.3.9 处理菜单项   第11章 对话框   11.1 模态对话框   11.1.1 创建一个About对话框   11.1.2 对话框及其模板   11.1.3 对话框过程   11.1.4 激活对话框   11.1.5 主题变换   11.1.6 更复杂的对话框   11.1.7 对话框控件的应用   11.1.8 OK和Cancel按钮   11.1.9 避免全局变量   11.1.1 0Tab停靠和选项组   11.1.1 1在对话框上绘图   11.1.1 2关于对话框的其他函数.   11.1.1 3定义程序自己的控件   11.2 非模态对话框   11.2.1 模态与非模态对话框的区别   11.2.2 新的COLORS程序   11.2.3 HEXCALC:窗口还是对话框?   11.3 公用对话框   11.3.1 完善POPPAD   11.3.2 Unicode文件的读/写操作   11.3.3 改变字体   11.3.4 查找和替换   11.3.5 只调用一个函数的Windows程序   ……   第Ⅱ部分 关于图的那些事儿   第Ⅲ部分 高级主题
该版本提供了下册详细目录可以快速查阅(当然已经提供详细书签) 基本信息 原书名: Programming Windows (Fifth Edition) 原出版社: Microsoft Press 作者: (美)Charles Petzold 译者: 北京博彦科技发展有限责任公司 丛书名: Microsoft 程序设计系列 出版社:北京大学出版社 ISBN:730104187X 上架时间:2004-11-16 出版日期:2004 年9月 页码:1376 版次:1-8 内容简介    如果对Windows开发有什么问题的话,请翻阅PetZold的著作吧。在《Window程序设计》(第5版),这位杰出的“Windows先锋奖”(Windows Pioneer Award)获得者根据最新的Windows操作系统权威技术修订了他的经典著作——再一次演示了基本的Win32程序设计的API核心内容。本书的内容包括:    ** 基本内容——输入、输出和对话框    ** Unicode概述    ** 图形——绘图、文本和字体、位图和元文件    ** 内核和打印机    ** 声音和音乐    ** 动态链接库    ** 多任务和多线程    ** 多文档界面    ** Internet和 Intranet的程序设计    其采用的大多是具有代表性的示例,这本Petzold著作为使用 Windows 95、Windows 98或 Windows NT的各级windows程序员提供了最基本的参考和指导。没有经验的开发人员也可以从获取大量的新知识。       作译者 本书提供作译者介绍    Charles Petzold从 1984年开始编写个人计算机程序,从 1985年开始编写 Microsoft Windows程序。他在《Microsoft Systems Joumal》1986年 12月号上发表了第一篇关于 Windows程序设计的杂志论文。从 1986年到 1995年,他为《PC Magazine》撰写“Environments”专栏,给读者介绍了Windows和OS/2程序设计的许多方面。 《Windows 程序设计》由微软出版社在1988年首次出版,后来被认为是这方面最好的导论性读本。在1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《WindowcMagazine》和Microsoft公司授予Windows Pioneer奖, 以表彰他对 Microsoft Windows的成功做出的贡献. 在1999年秋天,微软出版社将出版Charles Petzold面向普通读者的第一本书. 暂时命名为 《Code:The Hidden Language of Computer Hardware and Software》, 这本书专门介绍数字信息的本质以及计算机处理数字信息的方式. 作者: Charles Petzold 1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《Window Magazine》和Microsoft公司授予Windows Pioneer奖,以表彰他对 Microsoft Windows的成功做出的贡献。 Charles Petzold从1984年开始编写个人计算机程序,从1985年开始编写 Microsoft Windows程序。他在《Microsoft Systems Joumal》1986年 12月号上发表了第一篇关于Windows程序设计的杂志论文。从1986年到1995年,他为《PC Magazine》撰写“Environments”专栏,给读者介绍了Windows和OS/2程序设计的许多方面。 [同作者作品] Microsoft c#Windows程序设计(上下册) Microsoft Windows程序设计——Visual Basic.NET语言描述 Windows 3D编程(英文影印版) 目录 第一部分 基础知识 第一章 开始 l.1 windows环境 1.1.1 windows 简史 1.1.2 windows方面 1.1.3 动态链接 1.2 windows编程选项 1.2. 1 api和内存模式 1.2.2 语言选项 l.2. 3 编程环境 1.2.4 api文档 1.3 编写一个windows程序 1.3.1 字符模式(character-mode)模型 1.3.2 windows 等价程序 1.3.3 头文件 1.3.4 程序入口点 1.3.5 messagebox 函数 1.3.6 编译、链接和运行 第二章 unicode简介 2.1 字符集简史 . 2.1.1 美国标准 2.1.2 国际方面 2.1.3 扩展ascll 2.1.4 双字书字符集 2.1.5 unicode解决方案 2.2 宽字符和c 2.2.1 char数据类型 2. 2. 2 宽字符 2.2.3 宽字符库函数 2.2.4 维护单一源代码 2.3 宽字符和windows 2.3.1 windows 头文件类型 2.3.z windows 函数调用 2.3.3 windows的字符串函数 2.3.4 在 windows使用 printf 2.3.5 格式化消息框 2.3.6 本书与国际化 第三章 窗口和消息 3.1 自己的窗口 3. 1.l 总体结构 3.1.2 hellowin程序 3. 1.3 总体考虑 3.1.4 注册商口类 3.1.5 创建窗口 3.1.6 显示窗口 3.1.7 消息循环 3.1.8 窗口过程 3.1.9 处理消息 3.1.10 播放声音文件 3.1.11 wm_paint消息 3.1.12 wm_destroy消息 3.2 windows编程的难点 3.2.l 别调用我,我会调用您 3.2.2 进队消息与不进队消息 3.2. 3 行动迅速 第四章 输出文本 4.l 绘制和刷新 4.1.1 wm_paint消息 4. 1.2 有效短形和无效矩形 4.2 gdi简介 4.2.l 设备描述表 4.2.2 获取设备描述表句柄:方法一 4.2.3 绘图信息结构 4.2.4 获取设备描述表句柄:方法二 4. 2. 5 textout:细节 4.2.6 系统字体 4.2.7 字符大小 4.2. 8 文本尺寸:细节 4.2.9 格式化文本 4. 2.10 综合使用 4.2.11 sysments1.c窗口过程 4.2.12 空间不够 4. 2.13 客户区的大小 4.3 滚动条 4.3.l 滚动条的范围和位置 4.3.2 滚动条消息 4.3.3 在sysmets添加滚动功能 4.3.4 绘图程序的组 4.4 建立更好的滚动 4.4.l 滚动条信息函数 4.4.2 滚动范围 4.4.3 新sysmets 4.4. 4 不用鼠标怎么办 第五章 图形基础 5. 1 gdi的结构 5.1. 1 gdi原理 5.1.2 gdi函数调用 5.1.3 gdi日元 5. 1. 4 其他方面 5.2 设备描述表 5.2.l 获取设备描述表句柄 5.2.2 获取设备描述表信息 5.2.3 devcaps1程序 5.2.4 设备的大小 5.2.5 关于色彩 5.2.6 设备描述表属性 5.2.7 保存设备描述表 5.3 画点和线 5.3.l 写像素 5.3.2 直线 5.3.3 边界框函数 5. 3.4 贝塞尔样条 5.3.5 使用现有画笔(stock pens) 5.3.6 画笔的创建、选择和删除 5.3.7 填充空隙 5.3.8 绘图方式 5.4 绘制填充区域 5.4.1 polygon函数和多边形填充方式 5.4.2 用画刷填充内部 5.5 gdi映射方式 5.5.l 设备坐标和逻辑坐标 5.5.2 设备坐标系 5.5.3 机口和窗口 5.5.4 处理mm_text 5.5. 5 “度量”映射方式 5.5.6 “自作主张的”映射方式 5.5.7 whatsize 程序 5.6 短形、区域和剪裁 5.6.1 矩形函数 5.6.2 随机短形 5.6.3 创建和绘制区域 5. 6.4 短形与区域的剪裁 5.6.5 clover程序 第六章 键盘 6.1 键盘基础 6.1.1 忽略键盘 6.1.2 谁获得了焦点 6.1.3 队列和同步 6.1.4 击键和字符 6. 2 击键消息 6.2.1 系统击键与非系统击键 6.2.2 虚拟键码 6.2.3 iparam信息 6.2.4 换档状态 6.2.5 使用击健消息 6.2.6 为键盘增强sysmets 6.3 字符消息 6.3.1 四类字符消息 6.3.2 消息顺序 6.3.3 处理控制字符 6.3.4 死字符消息 6.4 键盘消息和字符集 6.4.1 keyviewi程序 6.4.2 外语键盘问题 6.4.3 字符集和字体 6.4.4 unicode怎么样? 6.4.5 truetype和大字体 6.5 插入符(不是光标) 6.5.l 插入符函数 6.5.2 typer 程序 第七章 鼠标 7.1 鼠标基础 7.1.1 一些简单的定义 7.2 客户区鼠标消息 7.2.l 简单的鼠标处理:一个例子 7.2.2 处理sha键 7.2.3 双击鼠标键 7.3 非客户区鼠标消息 7.3.1 命测试消息 7.3.2 从消息产生消息 7.4 程序的命测试 7. 4. 1 一个假想的例子 7.4.2 示例程序 7.4.3 使用键盘仿真鼠标 7.4. 4 在checker添加键盘接口 7.4. 5 将于窗口用于命测试 7.4.6 checker的子窗口 7.4.7 子窗口和键盘 7.5 捕获鼠标 7.5.1 设计矩形 7.5.2 捕获的解决方案 7.5.3 blokout2程序 7.6 鼠标轮 7.6.1 后会有期 第八章 计时器 8.1 计时器基础 8.1.1 系统和计时器 8.1.2 计时器消息不是异步的 8.2 计时器的使用:三种方法 8.2.1 方法一 8.2.2 方法二 8.2.3 方法三 8.3 计时器用于时钟 8.3.1 构造数字时钟 8.3.2 获取当前时间 8.3.3 显示数字和冒号 8.3.4 国际化 8.3.5 构造模拟时钟 8.4 为状态报告使用计时器 第九章 子商口控制 9.1 按钮类 9.1.1 创建于窗口 9.1.2 子窗口向父窗口发送消息 9.1.3 父窗口向子窗口发送消息 9.1.4 下压按钮 9.1.5 复选框 9.1. 6 单选按钮 9.1.7 分组框 9.1.8 更改按钮文本 9.1.9 可见的和启用的按钮 9.1.10 按钮和输入焦点 9.2 控制与颜色 9.2.1 系统颜色 9.2.2 按钮颜色 9.2.3 wm_ctlcolorbtn消息 9.2.4 拥有者给制按钮 9.3 静态类 9.4 滚动条类 9. 4. 1 colors1程序 9. 4.2 自动键盘接口 9. 4. 3 窗口子类化 9.4.4 给背景着色 9.4.5 给滚动条和静态文本着色 9.5 编辑类 9.5.l 编辑类风格 9.5.2 编辑控制通知 9.5.3 使用编辑控制 9.5.4 发送给编辑控制的消息 9.6 列表框类 9.6.1 列表框风格 9.6.2 将串放人列表框 9.6.3 选择和获取项 9.6.4 接收来自列表框的消息 9.6.5 一个简单的列表框应用程序 9.6.6 文件列表 9.6.7 windows的head程序 第十章 菜单及其他资源 10.l 图标、光标、字符串和定制资源 10.1.1 将图标添加到程序 10.1.2 获取图标句柄 10.1.3 在程序使用图标 10.1.4 使用自定义光标 10.1.5 字符串资源 10.1.6 定制资源 10.2 菜单 10.2.1 菜单概念 10.2.2 菜单结构 10.2.3 定义菜单 10.2.4 在程序引用菜单 10.2. 5 菜单和消息 10.2.6 示例程序 10.2.7 菜单设计规范 10.2.8 定义菜单的复杂方法 10.2.9 浮动弹出式菜单 10.2.10 使用系统菜单 10. 2.11更改菜单 10.2.12 其他菜单命令 10.2.13 创建菜单的非正规方法 10.3 键盘加速键 10.3.1 为什么要使用加速键 10.3.2 安排加速键的几条规则 10.3.3 加速健表 10.3.4 加载加速键表 10.3.5 键盘代码转换 10.3.6 接收加速键消息 10.3.7 菜单与加速键应用程序poppad 10.3.8 启用菜单项 10.3.9 处理菜单项 第十一章 对话框 11.1 模态对话框 11.1.1 创建about对话框 11.1.2 对话框及其模板 11.1.3 对话框过程 11.1.4 激活对话框 11.1.5 不同的主题 11.l.6 更复杂的对话框 11.1.7 使用对话框控制 11.l.8 ok和cancel按钮 11.1.9 避免全局变量 11.1.10 tab停留位和组 11.1.11 在对话框上绘图 11.1.12 将其他函数用于对话框 11.1.13 定义自己的控制 11.2 非模态对话框 11.2.l 模态对话框与非模态对话框的区别 11.2.2 新的 colors程序 11.2.3 hexcalc:窗口还是对话框? 11.3 通用对话框 11.3.l 增强poppad 11.3.2 unicode 文件 i/o 11.3.3 更改字体 11.3.4 查找与替换 11.3.5 只调用一个函数的windows程序 第十二章 剪贴板 12.1 剪贴板的简单使用 12.1.1 标准剪贴板数据格式 12.1.2 内存分配 12.1.3 将文本传送到剪贴板 12.1.4 从剪贴板上获取文本 12.1.5 打开和关闭剪贴板 12.1.6 剪贴板和unicode 12.2 复杂的剪贴板用法 12.2.l 利用多个数据项 12.2.2 延迟生成 12.2.3 私有数据格式 12.3 实现剪贴极查看器 12.3.1 剪贴板查看器链 12.3.2 剪贴板查看器的函数和消息 12.3.3 一个简单的剪贴板查看器
4. API之打印函数 AbortDoc 取消一份文档的打印 AbortPrinter 删除与一台打印机关联在一起的缓冲文件 AddForm 为打印机的表单列表添加一个新表单 AddJob 用于获取一个有效的路径名,以便用它为作业创建一个后台打印文件。它也会为作业分配一个作业编号 AddMonitor 为系统添加一个打印机监视器 AddPort 启动"添加端口"对话框,允许用户在系统可用端口列表加入一个新端口 AddPrinter 在系统添加一台新打印机 AddPrinterConnection 连接指定的打印机 AddPrinterDriver 为指定的系统添加一个打印驱动程序 AddPrintProcessor 为指定的系统添加一个打印处理器 AddPrintProvidor 为系统添加一个打印供应商 AdvancedDocumentProperties 启动打印机文档设置对话框 ClosePrinter 关闭一个打开的打印机对象 ConfigurePort 针对指定的端口,启动一个端口配置对话框 ConnectToPrinterDlg 启动连接打印机对话框,用它同访问网络的打印机连接 DeleteForm 从打印机可用表单列表删除一个表单 DeleteMonitor 删除指定的打印监视器 DeletePort 启动"删除端口"对话框,允许用户从当前系统删除一个端口 DeletePrinter 将指定的打印机标志为从系统删除 DeletePrinterConnection 删除与指定打印机的连接 DeletePrinterDriver 从系统删除一个打印机驱动程序 DeletePrintProcessor 从指定系统删除一个打印处理器 DeletePrintProvidor 从系统删除一个打印供应商 DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 DocumentProperties 打印机配置控制函数 EndDocAPI 结束一个成功的打印作业 EndDocPrinter 在后台打印程序的级别指定一个文档的结束 EndPage 用这个函数完成一个页面的打印,并准备设备场景,以便打印下一个页 EndPagePrinter 指定一个页在打印作业的结尾 EnumForms 枚举一台打印机可用的表单 EnumJobs 枚举打印队列的作业 EnumMonitors 枚举可用的打印监视器 EnumPorts 枚举一个系统可用的端口 EnumPrinterDrivers 枚举指定系统已安装的打印机驱动程序 EnumPrinters 枚举系统安装的打印机 EnumPrintProcessorDatatypes 枚举由一个打印处理器支持的数据类型 EnumPrintProcessors 枚举系统可用的打印处理器 Escape 设备控制函数 FindClosePrinterChangeNotification 关闭用FindFirstPrinterChangeNotification函数获取的一个打印机通告对象 FindFirstPrinterChangeNotification 创建一个新的改变通告对象,以便我们注意打印机状态的各种变化 FindNextPrinterChangeNotification 用这个函数判断触发一次打印机改变通告信号的原因 FreePrinterNotifyInfo 释放由FindNextPrinterChangeNotification函数分配的一个缓冲区 GetForm 取得与指定表单有关的信息 GetJob 获取与指定作业有关的信息 GetPrinter 取得与指定打印机有关的信息 GetPrinterData 为打印机设置注册表配置信息 GetPrinterDriver 针对指定的打印机,获取与打印机驱动程序有关的信息 GetPrinterDriverDirectory 判断指定系统包含了打印机驱动程序的目录是什么 GetPrintProcessorDirectory 判断指定系统包含了打印机处理器驱动程序及文件的目录 OpenPrinter 打开指定的打印机,并获取打印机的句柄 PrinterMessageBox 在拥有指定打印作业的系统上显示一个打印机出错消息框 PrinterProperties 启动打印机属性对话框,以便对打印机进行配置 ReadPrinter 从打印机读入数据 ResetDC 重设一个设备场景 ResetPrinter 改变指定打印机的默认数据类型及文档设置 ScheduleJob 提交一个要打印的作业 SetAbortProc 为Windows指定取消函数的地址 SetForm 为指定的表单设置信息 SetJob 对一个打印作业的状态进行控制 SetPrinter 对一台打印机的状态进行控制 SetPrinterData 设置打印机的注册表配置信息 StartDoc 开始一个打印作业 StartDocPrinter 在后台打印的级别启动一个新文档 StartPage 打印一个新页前要先调用这个函数 StartPagePrinter 在打印作业指定一个新页的开始 WritePrinter 将发送目录的数据写入打印机 5. API之文本和字体函数 AddFontResource 在Windows系统添加一种字体资源 CreateFont 用指定的属性创建一种逻辑字体 CreateFontIndirect 用指定的属性创建一种逻辑字体 CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 DrawText 将文本描绘到指定的矩形 DrawTextEx 与DrawText相似,只是加入了更多的功能 EnumFontFamilies 列举指定设备可用的字体 EnumFontFamiliesEx 列举指定设备可用的字体 EnumFonts 列举指定设备可用的字体 ExtTextOut 经过扩展的文本描绘函数。也请参考SetTextAlign函数 GetAspectRatioFilterEx 用SetMapperFlags要求Windows只选择与设备当前纵横比相符的光栅字体时,本函数可判断纵横比大小 GetCharABCWidths 判断TureType字体一个或多个字符的A-B-C大小 GetCharABCWidthsFloat 查询一种字体一个或多个字符的A-B-C尺寸 GetCharacterPlacement 该函数用于了解如何用一个给定的字符显示一个字串 GetCharWidth 调查字体一个或多个字符的宽度 GetFontData 接收一种可缩放字体文件的数据 GetFontLanguageInfo 返回目前选入指定设备场景的字体的信息 GetGlyphOutline 取得TureType字体构成一个字符的曲线信息 GetKerningPairs 取得指定字体的字距信息 GetOutlineTextMetrics 接收与TureType字体内部特征有关的详细信息 GetRasterizerCaps 了解系统是否有能力支持可缩放的字体 GetTabbedTextExtent 判断一个字串占据的范围,同时考虑制表站扩充的因素 GetTextAlign 接收一个设备场景当前的文本对齐标志 GetTextCharacterExtra 判断额外字符间距的当前值 GetTextCharset 接收当前选入指定设备场景的字体的字符集标识符 GetTextCharsetInfo 获取与当前选定字体的字符集有关的详细信息 GetTextColor 判断当前字体颜色。通常也称为"前景色" GetTextExtentExPoint 判断要填入指定区域的字符数量。也用一个数组装载每个字符的范围信息 GetTextExtentPoint 判断一个字串的大小(范围) GetTextFace 获取一种字体的字样名 GetTextMetrics 获取与选入一种设备场景的物理字体有关的信息 GrayString 描绘一个以灰色显示的字串。通常由Windows用于标识禁止状态 PolyTextOut 描绘一系列字串 RemoveFontResource 从Windows系统删除一种字体资源 SetMapperFlags Windows对字体进行映射时,可用该函数选择与目标设备的纵横比相符的光栅字体 SetTextAlign 设置文本对齐方式,并指定在文本输出过程使用设备场景的当前位置 SetTextCharacterExtra 描绘文本的时候,指定要在字符间插入的额外间距 SetTextColor 设置当前文本颜色。这种颜色也称为"前景色" SetTextJustification 通过指定一个文本行应占据的额外空间,可用这个函数对文本进行两端对齐处理 TabbedTextOut 支持制表站的一个文本描绘函数 TextOut 文本绘图函数 6. API之菜单函数 AppendMenu 在指定的菜单里添加一个菜单项 CheckMenuItem 复选或撤消复选指定的菜单条目 CheckMenuRadioItem 指定一个菜单条目被复选成"单选"项目 CreateMenu 创建新菜单 CreatePopupMenu 创建一个空的弹出式菜单 DeleteMenu 删除指定的菜单条目 DestroyMenu 删除指定的菜单 DrawMenuBar 为指定的窗口重画菜单 EnableMenuItem 允许或禁止指定的菜单条目 GetMenu 取得窗口一个菜单的句柄 GetMenuCheckMarkDimensions 返回一个菜单复选符的大小 GetMenuContextHelpId 取得一个菜单的帮助场景ID GetMenuDefaultItem 判断菜单的哪个条目是默认条目 GetMenuItemCount 返回菜单条目(菜单项)的数量 GetMenuItemID 返回位于菜单指定位置处的条目的菜单ID GetMenuItemInfo 取得(接收)与一个菜单条目有关的特定信息 GetMenuItemRect 在一个矩形装载指定菜单条目的屏幕坐标信息 GetMenuState 取得与指定菜单条目状态有关的信息 GetMenuString 取得指定菜单条目的字串 GetSubMenu 取得一个弹出式菜单的句柄,它位于菜单指定的位置 GetSystemMenu 取得指定窗口的系统菜单的句柄 HiliteMenuItem 控制顶级菜单条目的加亮显示状态 InsertMenu 在菜单的指定位置处插入一个菜单条目,并根据需要将其他条目向下移动 InsertMenuItem 插入一个新菜单条目 IsMenu 判断指定的句柄是否为一个菜单的句柄 LoadMenu 从指定的模块或应用程序实例载入一个菜单 LoadMenuIndirect 载入一个菜单 MenuItemFromPoint 判断哪个菜单条目包含了屏幕上一个指定的点 ModifyMenu 改变菜单条目 RemoveMenu 删除指定的菜单条目 SetMenu 设置窗口菜单 SetMenuContextHelpId 设置一个菜单的帮助场景ID SetMenuDefaultItem 将一个菜单条目设为默认条目 SetMenuItemBitmaps 设置一幅特定位图,令其在指定的菜单条目使用,代替标准的复选符号(√) SetMenuItemInfo 为一个菜单条目设置指定的信息 TrackPopupMenu 在屏幕的任意地方显示一个弹出式菜单 TrackPopupMenuEx 与TrackPopupMenu相似,只是它提供了额外的功能 作者Blog:http://blog.csdn.net/daiguopeng/ 相关文章 用VC 6.0实现串行通信的三种方法 windows运行命令详解 Windows API函数大全四 Windows API函数大全三 Windows API函数大全二

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧