- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 子窗口控制项与系 统预先定义窗口类 基本概念 子窗口控制项定义 Windows中通常把用作控制作用的子窗口称为控制项、控件、子窗口控制项。 这类子窗口已经由系统注册,其窗口函数由系统确定,用户可直接创建。 子窗口控制项与父窗口之间的信息交互是通过窗口函数实现的,在子窗口函数中会向父窗口发送消息:SendMessage(hwndParant,message,wParam,lParam)。 父窗口向子窗口发送消息: SendMessage(hwndChild,message,wParam,lParam) 子窗口控制项的建立 控制项的窗口类是一种系统内定的窗口类,无需用户再注册,可直接创建:Button、Edit等7种 控制项的操作 控制项的操作 用户的输入信息通过控制项送给父窗口 子窗口控制项上接受用户输入后,通常会在自己的窗口函数中向父窗口发送消息,该消息为(WM_AOMMAND,wParam, lParam),其中wParam的高位是通知码,低位是控制项子窗口ID,lParam是接收消息的父窗口的代号。 父窗口送消息给控制项 如:SendMessage(hwndButton,BM_SETSTATE,1,0);使按钮状态变为“1”; 使控制项变为有效或无效:EnableWindow(hwndchild,FALSE) 移动和改变控制项的大小:MoveWindow 删除控制项 按钮控制项例程 控制项的建立 创建时与自定义子窗口创建类似,不同的是控制项子窗口有自己的不同类型,在创建时可指出: CreateWindow ( TEXT(button), //建立窗口时用的窗口类 button[i].szText,//所建窗口的标题,从button[i]结构数组中取得 WS_CHILD | WS_VISIBLE | button[i].iStyle,//所建窗口式样 按钮控制项例程 子窗口消息的传递 case WM_COMMAND : ScrollWindow (hwnd, 0, -cyChar, rect, rect) ; ValidateRect (hwnd, rect) ;//使矩形区域为有效 子窗口与父窗口之间的消息传递 子窗口向父窗口发送command消息 强调:不同的子窗口控制项有不同的通知码定义 父窗口向子窗口发送消息 获得子窗口句柄: 创建时保存句柄 GetDlgItem(hwndParant,ID) 给子窗口控制项发送的消息由不同的控制项定义 按钮的分类 按钮是按照建立按钮时的预定义窗口类及所建窗口的式样来进行分类的。CreateWindow根据button所建立的子窗口控制项称为按钮控制项,简称按钮。再根据CreateWindow的第三个参数所采用的窗口式样的不同,按钮可以分成多种类型, 可以分为: 常规按钮 核取方块和单选按钮 具有BS_CHECKBOX式样的核取方块 具有BS_AUTOCHECKBOX式样的核取方块 单选按钮 分组块 如何改变按钮上的文字 按钮上的文字表示按钮的名称和作用。是CreateWindow的第二个参数所规定的窗口标题。 可以通过SetWindowText来改变按钮上的文字: SetWindowText (hwnd, pszString) ; 也可以用下面的函数取得当前窗口的文字: iLength = GetWindowText (hwnd, pszBuffer, iMaxLength) ; 可以用下面的函数获得hwnd窗口(按钮)的特定文字的长度: iLength = GetWindowTextLength (hwnd) ; 按钮的可见与启用 WS_VISIBLE没有包含在窗口式样中,调用ShowWindow显示按钮: WS_VISIBLE包含在窗口式样中,就没有必要调用ShowWindow。 ShowWindow将子窗口隐藏起来 IsWindowVisible设置窗口是否可见 。 EnableWindow设置窗口是否启用 IsWindowEnabled了解窗口是否被启用 拥有者自画按钮表面图案的程序 拥有者自画按钮表面图案的程序OWNDRAW.C 对COMMAND消息的响应 对DRAWITEM消息的响应 FillRect FrameRect * *
文档评论(0)