VS2010、MFC对话框程序、点击一个按钮弹出一个有多选项卡的属性页界面(即属性表单)

第一步:

  建立多个属性页,可以添加对话框资源,然后修改对话框资源的属性,在vs2010中,修改如下3个:Style设置为child;Border设置为Thin;System menu设置为fasul;

Title Bar为true(默认即为true);修改Caption:为此属性页选项卡的名称;

第二步:

  为上面的属性页添加类,父类选为CPropertyPage;添加方式:右击对话框添加类即可。

  (若是父类中没有CPropertyPage类,从类向导中添加即可,此种方法添加时需要选好相应的对话框ID,有几个属性页就添加几个类)

假设有两个选项卡,即属性页,分别类名为CPage1,CPage2;

第三步:

  使用类向导添加一个新的MFC类,父类为CPropertySheet类(属性表单类),假设类名为CSheet(它默认不对应任何对话框);

第四步:(把属性页和属性表单表联系起来)

  在CSheet(属性表单类)类中创建属性页对象:

  CPage1 m_page1;

  CPage2 m_page2;

因为用到CPage1,CPage2两个类,所以需要在Csheet的头文件中包含属性页的头文件:

  #include "CPage1"

  #include "CPage2"

第五步:

(第四步只是把属性页在表单中声明或者说只是在表单类中添上了属性页的两个对象,还需要用属性表单CPropertySheet的成员函数AddPage把属性页添加显示在属性表单中。

可以这么理解:第四步是表示属性表单有这两个属性页,第五步是把这属性页拿过来用)

  在CSheet的构造函数中(它有两个构造函数,用哪一个都行,建议用第一变量为LPCTSTR的那个),添加如下代码:

AddPage(&m_page1);

AddPage(&m_page2);

这样就把属性页完全调到表单中了。

第六步:

给主对话框的按钮添加执行函数:

CSheet prsheet(_T("期望的表单总名称"))//prsheet是CSheet的实例对象,记得类不能直接用,须得实例化才行;_T()是2010的编码风格需要;

  //“期望的表单总名称”是构造函数的参数

prsheet.DoModal();//以模态窗口显示实例化后的属性表单;

时间: 2024-08-04 20:30:16

VS2010、MFC对话框程序、点击一个按钮弹出一个有多选项卡的属性页界面(即属性表单)的相关文章

android :点击某个按钮弹出在原有布局中没有(或者存在)内容 :以删除原有布局内容为例

主要涉及了(1)对布局中某个控件的监听 (2)在布局文件中设置可显示,删除的参数 visibility的参数的有三个,在这里我只设置了一个,可见的. android:visibility="visible" 剩下的和他的用法相同. (3)在代码中监听控件后,对visibility的参数重新设置. 效果图:点击按钮后edittext不见了 (1)点击高级按钮前 (2)点击高级按钮后 (1)布局文件 <?xml version="1.0" encoding=&qu

iOS开发项目篇—14点击标题按钮弹出菜单

iOS开发项目篇—14点击标题按钮弹出菜单 一.简单说明 (1)简单实现 点击标题按钮弹框,在箭头向上的时候,显示标题菜单 把ImageView添加到谁的身上?三角形的箭头在导航栏上,因此不能添加到tableview上. 分析图示: 有两个两种方法可以考虑: (1)添加到导航控制器上,因为导航栏是在导航控制器上的. (2)不用考虑控制器,直接添加到窗口上. 拿到窗口 (1)self.view.window这个属性谨慎使用,当开始加载的时候,为空 (2)获取主窗口  [UIApplication

第一个微信小程序(实现点击一个按钮弹出toast)

今天根据网上的教程搭建了微信小程序的环境,然后看文档做了一个简单的小应用. 项目的目录是这个样子的: app.js.app.json.app.wxss是全局文件,必不可少的文件.定义在app.wxss中的样式为全局样式,作用于每一个页面.在page的wxss文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖app.wxss中相同的选择器. app.js文件代码: App({ onLaunch: function () { console.log('小程序已启动') }, onShow: f

从点击Button到弹出一个MessageBox, 背后发生了什么(每个UI线程都有一个ThreadInfo结构, 里面包含4个队列和一些标志位)

思考一个最简单的程序行为:我们的Dialog上有一个Button, 当用户用鼠标点击这个Button时, 我们弹出一个MessageBox. 这个看似简单的行为, 谁能说清楚它是如何运行起来的,背后究竟发生了什么? 下面是我个人尝试的解答: (1)我们的鼠标点击事件到达设备的驱动程序, 驱动程序把消息放入系统硬件输入队列SHIQ(system hardware input queue). (2)通过系统的原始输入线程 RIT (raw input thread)把鼠标事件发送到对应的窗口.这里我

页面点击Button按钮弹出登陆注册框(含短信验证功能)

1 <div class="login-hidd"></div> 2 <div class="login-wrap"> 3 <div class="login-cont"> 4 <img id="login-img-close" src="/views/image/close08.png" alt="登陆" title="&

点击按钮弹出一个div层

JQuery弹出层,点击按钮后弹出遮罩层,还有关闭按钮 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery弹出层效果</title> <meta content="网页特效,特效代码,jQuery,css特效,Js代码" name="keywords" /> <

Android基础TOP4_1:点击物理按钮弹出退出提示框

JAVA: public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } //点击物理按钮时,执行退出提示 public boolean onKeyDown(int keyCode,KeyE

根据juery CSS点击一个标签弹出一个遮罩层的简单示例

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="JS/JavaScript/jq

新浪微博客户端(46)-点击表情按钮弹出表情

DJEmotionPageView.m /** * 点击表情监听方法 * param btn 点击的表情按钮 */ - (void)emotionBtnClick:(DJEmotionButton *)btn { // 获取当前应用程序最顶层的窗口 UIWindow *lastWindow = [[UIApplication sharedApplication].windows lastObject]; // 转换btn当前坐标系 CGRect newFrame = [btn convertRe