大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 在Visual C++中实现特性表

在Visual C++中实现特性表

时间: 2021-07-31 作者:daque

windows 95 以及windows nt 4.0 较之往日的windows 操纵体例减少了很多进步个性,个性表即是个中一个。大师熟知的个性表的范例是windows 中屏幕表露属性的树立,它囊括后台、屏幕养护步调、表面、树立等个性页。运用个性表的最大的长处在乎它不妨特殊简单地将洪量的消息供给给用户,进而灵验地俭朴屏幕空间,由于它是包括几何个其它对话框的对话框。创造个性表---- visual c++ 中mfc 供给了两个类,cpropertysheet 和cpropertypage,使编制程序职员不妨轻快地在步调中实行个性表。以vc4.0 为例,在步调中创造一个个性表可按如次办法举行:---- 1. 在microsoft developer studio 中采用菜单insert /component...,屏幕上会弹出一个"component gallery "对话框。(提防,此对话框自己即是个性表的一种。)---- 2. 在对话框中的microsoft 页选中property sheet,单击"insert ",屏幕上展示创造个性表的引导。---- 3. 在引导的第一步采用"property sheet ";第二步采用能否天生无形式的个性表以及能否要在个性表中扶助预览功效;第三步采用创造个性表因变量动作哪一个类的分子因变量(即在哪一个类中启用个性表);第四步树立个性表所包括的页数;第六步为新天生的类(个性表自己及其包括的每一页都是一个独立的类)决定称呼。如许,一个个性表就天生了。visual c++ 仍旧为你编写了基础的源代码。---- 4. 机动天生的代码中,启用此个性表的因变量普遍名为onproperties( ),在你须要的场合挪用它,而后编写翻译,贯穿,运转,你会看到一个个性表仍旧不妨在你须要的场合弹出来了。---- 5. 截至暂时,个性表中的每一页仍旧空缺。在一页中介入须要的控件(controls)和普遍的对话框一律大略,由于它自己即是一种对话框。翻开resourceview 中的dialog,个性表的每一页都动作一个对话框列于个中,只有对它们举行编纂,再在步调中实行相映功效就不妨了。此刻,一个个性表仍旧十足实行。---- 个性表中的页固然和普遍对话框基础普遍,但再有几点须要提防的题目:---- 1. 页中的各控件不许运用其扩充作风(extended styles);---- 2. 页中的各控件不许运用help id;---- 3. control id 不许是dword 典型;---- 4. 不许在页的字体中树立粗细、斜体、字符集等属性。---- 即使不许按照之上准则,步调运转时将会展示缺点。个性表的运用本领---- 用com ent gallery 创造的个性表的下端囊括三个按钮:决定、废除、运用、扶助。然而,偶尔侯你须要的不是这几个按钮,以至实足不须要按钮,那么怎样窜改呢?---- 在mfc 步调里面,这几个按钮都有着本人id,辨别为idok、idcancel、id_apply_now、idhelp。那些宏在文献afxres.h 和winres.h 中设置,运用步调普遍仍旧转弯抹角地包括了它们,不妨径直援用。运用它们挪用getdlgitem 因变量不妨获得各按钮的窗口句柄。有了句柄,对按钮举行变换就变得特殊大略:用setwindowtext 变换按钮的字符,用showwindow 和enablewindow 隐含按钮,用movewindow 变换按钮场所。---- 假如个性表的类名为cmypropertysheet,以隐含`运用'、`扶助'两个按钮为例,该当在个性表的步调中介入如次代码:......static int rgibuttons[] = { idok, idcancel, id_apply_now, idhelp };......bool cmypropertysheet::oninitdialog(){bool bresult = cpropertysheet::oninitdialog();for ( int i = 2; i < 4; i++ ){hwnd hwnd = ::getdlgitem( m_hwnd, rgibuttons[i] );if ( hwnd != null ){::showwindow( hwnd, sw_hide );::enablewindow( hwnd, false );}}centerwindow();return bresult;}---- 即使在四个按钮除外还需介入其余的按钮则对立搀杂少许,由于这不许在resourceview 中实行,必需实足在代码中实行。开始,在类cmypropertysheet 中介入分子变量:---- protected: ---- cbutton m_btn; ---- 还要为按钮介入点按相应的分子因变量的设置。为了使之能为classwizard 所辨别,代码如次:protected://{{afx_msg(cmypropertysheet)afx_msg void onbnclicked();//}}afx_msg步调中还要介入动静映照如次:begin_message_map(cmypropertysheet, cpropertysheet)//{{afx_msg_map(cmypropertysheet)on_bn_clicked(id_mybutton,onbnclicked)//}}afx_msg_mapend_message_map()筹备处事结束之后,要在oninitdialog因变量中创造此按钮:crect rect;rect.setrect(buttonleft, buttntop, buttonright, buttonbottom);m_btn.create("mybutton", bs_pushbutton|ws_visible,rect, this, id_mybutton);结果,在步调中实行点按按钮的相应因变量:void cmypropertysheet::onbnclicked(){......}论断---- 基础上海大学局部windows 95 步调城市用到个性表,个性表不妨灵验地俭朴屏幕空间。正文引见了少许关系本领。一致的本领也不妨用在另一项进步本领──引导(wizard)中,读者群不妨本人去试验。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.