Windows核心编程——第一章
来源:互联网 发布:java static final区别 编辑:程序博客网 时间:2024/04/19 13:46
一、Edit_LimitText
#define Edit_LimitText(hwndCtl, cchMax)
((void)SNDMSG((hwndCtl), EM_LIMITTEXT, (WPARAM)(cchMax), 0L))
#define SNDMSG ::SendMessage
功能描述:设置Edit控件字符最大宽度
->include<windowsx.h>
二、MAKELANGID
#define MAKELANGID(p, s) ((((WORD )(s)) << 10) | (WORD )(p))
功能:设置语言标识
DWORD systemLocale = MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL);
LANG_NEUTRAL与SUBLANG_NEUTRAL两个常量联合起来将生成一个0值,即操作系统默认语言。
三、FormatMessage
DWORD FormatMessage(
DWORDdwFlags,
LPCVOIDlpSource,
DWORDdwMessageId,
DWORDdwLanguageId,
LPTSTRlpBuffer,
DWORDnSize,
va_list*Arguments
);
功能:格式化一个信息字符串
编写练习时一点小心得:
a. SetClassLongPtr(HWND, GCL_HICON, (LONG)hIcon); 更改或设置对框架左上角的小图标, 此函数还有别的功能, 详见MSDN
b. I. HANDLE_MSG(HWND, MSG, MSG_PROC) 宏, 通过此宏可以简化窗体过程函数中复杂的switch 函数结构, 例:
HANDLE_MSG(hwnd, WM_COMMAND, OnCommand) 展开后为: HANDLE_WM_COMMAND(hwnd, OnCommand),具体MSG_PROC 原型见:
windowsx.h 中查找类似HANDLE_WM_COMMAND的宏可找到对应消息的处理函数原型。
II.FORWARD_WM_COMMAND(HWND, CTRL_ID, CTRL_HWND, CODE_NOTIFY, FUNCTION) 宏, 本宏主要功能是向指定控件发送特定的
COMMAND事件, windows还提供类似其他的消息转发宏
以上宏被包涵在: windowsx.h 头文件中
c. OutputDebugString(LPTSTR) 在调试时跟踪一些参数信息是可用到, 此信息被显示到VS的输出视图窗体中.
意外收获:
在Visual Studio 中的Watch视窗中写入@err.hr 单步调试时可查看每一个windows API函数执行后的结果(成功的或失败时的错误代码和错误文本描述)
A P I宏可以简化某些常用的操作,如建立一种新字体,选择字体到设备环境,保存原来字体的句柄。代码的形式如下:
HFONT hfontOrig = (HFONT)SelectObject(hdc, (HGDIOBJ)hfontNew);
这个语句要求两个转换以得到没有编译警告错误的编译。在WindowsX . h中有一个宏,正是为了这个用途而设计:
#define SelectFont(hdc, hfont) /
((HFONT)SelectObject((hdc), (HGDIOBJ)(HFONT)(hfont)))
如果你使用这个宏,你的程序中的代码行就变成:
HFONGT hfontOrig = SelectFont(hdc, hfontNew);
这行代码更容易读,也不容易出错。
FORWARD_WM_*宏将分流开的消息参数重新构造成等价的wParam和lParam。然后这个宏再调用你提供的函数。在上面的例子中,宏调用DefWindowProc函数,但你可以简单地使用SendMessage或PostMessage。实际上,如果你想发送(或登记)一个消息到系统中的任何窗口,可以使用一个FORWARD_WM_*宏来帮助合并各个参数。
在WindowsX.h中还有其他一些API宏,有助于常用的Windows任务。建议读者了解并使用这些宏。
- Windows核心编程——第一章
- 《Windows核心编程》第一章 读书笔记
- Windows核心编程第一章笔记
- Windows核心编程笔记 第一章错误处理
- Windows 核心编程学习笔记-第一章
- 《windows核心编程5》第一章-错误处理
- Python核心编程第三版——第一章练习题答案
- Windows核心编程学习笔记 第一部分 第一章 错误处理
- windows核心编程-第一章 对程序错误的处理
- python核心编程 第一章
- 《Windows核心编程》笔记——进程
- windows 核心编程——进程
- windows核心编程——内存管理
- 《Windows核心编程》读书笔记——作业
- 《Windows核心编程》——四 进程
- 《Windows核心编程》——五 作业
- WINDOWS核心编程——必备知识
- WINDOWS核心编程——线程基础
- js获取当前时间
- 两分钟彻底让你明白Android Activity生命周期(图文)
- 项目开发文档
- nyoj27 水池数目 dfs
- 音视频压缩
- Windows核心编程——第一章
- Ios编程中文教程系列
- RMAN异机不同路径结构Duplicate数据库
- 使用WCF进行跨平台开发之一(WCF的实现、控制台托管与.net平台的调用)
- 小新手有问题求解答
- Linux C编程一站式学习
- .NET异步编程总结----四种实现模式
- VS2010如何调试IIS上的网站?
- js 自记忆函数