Chinaunix首页 | 论坛 | 博客
  • 博客访问: 147065
  • 博文数量: 43
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 401
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-31 22:55
文章分类

全部博文(43)

文章存档

2015年(1)

2014年(25)

2013年(17)

我的朋友

分类: Windows平台

2014-01-03 20:39:51

一、Edit_LimitText

#define  Edit_LimitText(hwndCtlcchMax

((void)SNDMSG((hwndCtl), EM_LIMITTEXT, (WPARAM)(cchMax), 0L))

#define  SNDMSG  ::SendMessage

功能描述:设置Edit控件字符最大宽度

->include

二、MAKELANGID

#define MAKELANGID(ps)       ((((WORD  )(s)) << 10) | (WORD  )(p))

功能:设置语言标识


DWORD systemLocale = MAKELANGID(LANG_NEUTRALSUBLANG_NEUTRAL);

LANG_NEUTRALSUBLANG_NEUTRAL两个常量联合起来将生成一个0值,即操作系统默认语言。

三、FormatMessage

DWORD FormatMessage(

  DWORD

  LPCVOID,

  DWORD,

  DWORD,

  LPTSTR,

  DWORD,

  va_list*

);

功能:格式化一个信息字符串

编写练习时一点小心得:

    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_*宏将分流开的消息参数重新构造成等价的wParamlParam。然后这个宏再调用你提供的函数。在上面的例子中,宏调用DefWindowProc函数,但你可以简单地使用SendMessagePostMessage。实际上,如果你想发送(或登记)一个消息到系统中的任何窗口,可以使用一个FORWARD_WM_*宏来帮助合并各个参数。 


WindowsX.h中还有其他一些API宏,有助于常用的Windows任务。建议读者了解并使用这些宏。

阅读(1129) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~