2012年1月5日

SetBkColor

SetBkColor填充文字的背景色。

posted @ 2012-01-05 20:16 梦五 阅读(543) | 评论 (0)编辑 收藏

2011年12月31日

windows 色彩宏

在大多数 GDI 函数调用中,使用 COLORREF 值(只是一个32位的无符号长整数)来表示一种色彩。COLORREF 值按照红、绿和蓝色的亮度指定了一种颜色,通常叫做“RGB色彩”。

windows 头文件 WINGDI.H 提供了几种使用 RGB 色彩值的宏。RGB 宏要求三个参数分别代表红、绿和蓝值,然后将它们组合为一个无符号长整数:
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r) | \
       ((WORD)((BYTE)(g)) 
<< 8)) | \
       (((DWORD)(BYTE)(b)) 
<< 16 )))
注意三个参数的顺序是红、绿和蓝值。因此,值 RGB(255,255,0) 是0x0000FFFF 或黄色(红色和绿色的合成)。

可以调用 GetNearestColor 来决定与某一色彩最接近的纯色:
crPureColor = GetNearestColor(hdc,crColor);

posted @ 2011-12-31 13:57 梦五 阅读(360) | 评论 (0)编辑 收藏

2011年12月21日

分辨率与设备联系起来的方式

对于打印机,经常用“每英寸的点数(dpi)”表示分辨率。
例如,大多数激光打印机有300或600 dpi 的分辨率。

视频显示器的分辨率是以水平和垂直的总的像素数来表示的。
例如,1024 * 768。

备注:
Windows 应用程序可以使用 SM_CXSCREEN 和 SM_CYSCREEN 参数从 GetSystemMetrics 得到像素尺寸。
程序也可以用 HORZRES(水平分辨率)和 VERTRES 参数从 GetDeviceCaps 中得到同样的值。

posted @ 2011-12-21 00:49 梦五 阅读(271) | 评论 (0)编辑 收藏

2011年12月18日

UpdateWindow 函数

BOOL UpdateWindow(
  HWND hWnd   
// handle to window
);
如果客户区的任一部分无效,UpdateWindow 将导致 Windows 用 WM_PAINT 消息调用窗口过程(如果整个客户区有效,则不调用窗口过程)。这一 WM_PAINT 消息不进入消息队列,直接由 Windows 调用窗口过程。窗口过程完成刷新后立即退出,Windows 将控制返回给程序中 UpdateWindow 调用之后的语句。

如果希望立即刷新无效区域,可以在调用 InvalidateRect 之后调用 UpdateWindow函数。

posted @ 2011-12-18 01:15 梦五 阅读(832) | 评论 (0)编辑 收藏

InvalidateRect函数

BOOL InvalidateRect(
  HWND hWnd,           
// handle to window
  CONST RECT* lpRect,  // rectangle coordinates
  BOOL bErase          // erase state
);
InvalidateRect 函数调用使客户区内的特定矩形或者整个客户区失效,这会导致 Windows 将 WM_PAINT 消息放入应用程序的消息队列中,最后由窗口过程处理他。
要注意的是,Windows 将 WM_PAINT 消息当成低优先级消息。

posted @ 2011-12-18 01:10 梦五 阅读(747) | 评论 (0)编辑 收藏

2011年12月17日

WM_SIZE 消息

确定窗口客户区大小的一个好方法是在窗口过程中处理WM_SIZE消息。

在窗口大小改变时,Windows(操作系统) 给窗口过程发送一个 WM_SIZE 消息。传给窗口过程的 lParam 参数的低位字节中包含客户区的宽度,高位字节中包含客户区的高度。

LOWORD(lParam);   // 获取客户区的宽度
HIWORD(lParam);    // 获取客户区的高度

posted @ 2011-12-17 17:48 梦五 阅读(811) | 评论 (0)编辑 收藏

2011年12月16日

消息驱动系统

Windows 是一个消息驱动系统。它通过把消息投入应用程序消息队列中或者把消息发送给合适的窗口过程,将发生的各种事件通知给应用程序。

posted @ 2011-12-16 09:39 梦五 阅读(303) | 评论 (0)编辑 收藏

2011年12月15日

窗口过程

一个Windows 程序可以包含多个窗口过程。一个窗口过程总是与调用RegisterClass注册的特定窗口类相关联。
程序通常不直接调用窗口过程。窗口过程通常由 Windows 本身调用。通过调用 SendMessage 函数,程序能够直接调用它自己的窗口过程。

窗口过程在处理消息时,必须返回0。窗口过程不予处理的所有消息应该被传给名为 DefWindowProc 的 Windwos 函数。
从 DefWindowProc  返回的值必须由窗口过程返回。

posted @ 2011-12-15 16:18 梦五 阅读(324) | 评论 (0)编辑 收藏

客户区

客户区就是程序自由绘图并且向用户交付可视输出的窗口区域。

客户区不包含滚动条所占据的空间。

posted @ 2011-12-15 10:02 梦五 阅读(210) | 评论 (0)编辑 收藏

2011年12月13日

Windows没有标准输入和标准输出的概念

Windows没有标准输入和标准输出的概念。

posted @ 2011-12-13 22:20 梦五 阅读(260) | 评论 (0)编辑 收藏

仅列出标题  下一页
<2012年5月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜

评论排行榜