网站大量收购独家精品文档,联系QQ:2885784924

【精品资料】Windows API 编程.ppt

  1. 1、本文档共549页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.1 程序 其中,参数 Sample Class用于指定生成窗口的窗口类的名称,也就是通过 RegisterClass函数注册的用户自定义的窗口类。如果CreateWindow函数执行成功,则返回新建的窗口句柄并将这个句柄赋值给全局变量Handle。这里的窗口句桶和Visual C+十中的窗口句柄的含义是完全一致的。 程序中除了创建主窗口外,还通过调用CreateWindow函数创建了两个按钮、一个编辑框和一个静态文本框。窗口类型都是由Windows系统预定义的,所以不用再注册就可以直接使用。这些窗口又被称为子窗口,因为它们是隶属于一个父窗口的,在这里就是隶属于由句柄Handle标识的窗口。正是这些子窗口构成了和用户进行交互的界面。 在本程序中,还通过调用API函数CreateFont创建了一个字体,程序中对CreateFont函数的调用如下: CreateFont函数的参数比较复杂,每个参数描述字体的某一个属性,CreateFont的功能就是用指定的字体属性创建一种字体。创建的字体由CreateFont返回的字体句柄来标识,例如,在向按钮 Encrypt发送 WM-SETFONT消息的同时,把 hFont作为 SendMessnge的wParam参数,实现将按钮Encrypt中的标题字体设置为上述程序中新建的字体。 SendMessnge用于向各个窗口发送消息,例如,上面的设置字体的消息就是通过如下语句发送的: case WM_PAINT://绘制窗口 PaintDemo(hwnd); break; case WM_CLOSE://结束应用程序 KillTimer(hwnd, 1); DdeDisconnectList(hConvList);//断开DDE会话 //撤消已注册的服务器名 DdeNameService(idInst, 0, 0, DNS_UNREGISTER); //销毁字符串句柄 DdeFreeStringHandle(idInst, hszAppName); DdeUninitialize(idInst);//结束DDE会话 PostQuitMessage(0); break; default://其他消息 return (DefWindowProc(hwnd, message, wParam, lParam)); } return(0); } //函数:PaintDemo //作用:绘制窗口 VOID PaintDemo(HWND hwnd) { PAINTSTRUCT ps; RECT rc; HCONV hConv; CONVINFO ci; int cConvsOrg = cConvs; BeginPaint(hwnd, ps);//开始绘制 SetRect(rc, 0, 0, cxText, cyText);//设定矩形区域 SetBkMode(ps.hdc, TRANSPARENT);//设置背景模式 SetTextColor(ps.hdc, 0x00FFFFFF); //文本颜色为白色 //填充矩形区域 FillRect(ps.hdc, rc, (HBRUSH)GetStockObject(fActive ? BLACK_BRUSH : GRAY_BRUSH)); //输出文本 DrawText(ps.hdc, ITOA(count, szT, 10), -1, rc, DT_CENTER | DT_VCENTER); if (hConvList) { OffsetRect(rc, 0, cyText); SetTextColor(ps.hdc, 0); //设定文本颜色为黑色 cConvs = 0; //查询下一个服务器 hConv = DdeQueryNextServer(hConvList, 0); while (hConv) { cConvs++; ci.cb = sizeof(CONVINFO); //获取DDE会话信息 DdeQueryConvInfo(hConv, QID_SYNC, ci); FillRect(ps.hdc,rc, (HBRUSH)GetStockObject(WHITE_BRUSH)); // 例13-2的源程序色背景 //输出文本 DrawText(ps.hdc, ITOA(ci.hUser, szT, 10), -1, rc,DT_CENTER | DT_VCENTER); OffsetRect(rc, 0, cyText); hConv = DdeQue

文档评论(0)

精品资料 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档