MFC切换子界面

在Dialog程序中,子界面通常是一些子控件,这些控件在切换的时候通常是隐藏其他,显示要显示的控件来做到的。

下面的例子有两个按钮,分别控制两个静态文本的显示(点击按钮1会显示文本1,点击文本2会显示文本2)

实现分为如下几个步骤:

1 给Dialog添加静态文本和按钮成员变量。

private:

CButton m_btn_1;

CButton m_btn_2;

CStatic m_static_1;

CStatic m_static_2;

2 程序初始化的时候动态创建控件

    m_btn_1.Create(_T("动态按钮1"),WS_CHILD | WS_VISIBLE,CRect(20,10,100,40),this,IDC_MYBTN_1);
    m_btn_2.Create(_T("动态按钮2"),WS_CHILD | WS_VISIBLE,CRect(110,10,190,40),this,IDC_MYBTN_2);

    m_static_1.Create(_T("hello world1"),WS_CHILD|WS_BORDER|SS_SIMPLE |SS_CENTER|WS_VISIBLE,CRect(20,50, 190, 150),this);
    m_static_2.Create(_T("hello world2"),WS_CHILD|WS_BORDER|SS_SIMPLE |SS_CENTER,CRect(20,50, 190, 150),this);

3 添加动态按钮机器响应函数的过程参考:

http://blog.csdn.net/calmreason/article/details/43791757

4 在响应函数中切换控件

void CmfcDlg::ClickBtn1()
{
    m_static_1.ShowWindow(TRUE);
    m_static_2.ShowWindow(FALSE);
    m_static_1.SetWindowText(_T("111111111111111111111111111111111111111111"));
}

void CmfcDlg::ClickBtn2()
{
    m_static_1.ShowWindow(FALSE);
    m_static_2.ShowWindow(TRUE);
    m_static_2.SetWindowText(_T("2222222222222222222222222222222222222222222"));
}

时间: 2024-10-14 02:41:01

MFC切换子界面的相关文章

MFC打开子界面,隐藏主界面后,程序图标在任务栏消失问题

在子窗口的构造函数中,父窗口改为通过GetDesktopWindow获取. CDIALOG::CDIALOG(CWnd* pParent /*=NULL*/): CDialogEx(CDIALOG::IDD, pParent) 改为: CDIALOG::CDIALOG(CWnd* pParent /*=NULL*/): CDialogEx(CDIALOG::IDD, pParent = GetDesktopWindow()) 任务栏图标OK.                           

【命令init3/5】centos7切换图像界面和dos界面

centos7切换图像界面和dos界面 在图形界面使用 ctrl+alt+F2切换到dos界面 dos界面ctrl+alt+F2切换回图形界面 在命令上 输入 init 3 命令 切换到命令行(dos)界面 输入 init 5命令 切换到图形界面 如果想系统默认 以某种方式启动 使用systemd创建符号链接指向默认运行级别. 修改方法为: 1.首先删除已经存在的符号链接---------------------------------------------------------------

iOS手势 规避同一界面上不同子界面同时响应多个手势

最近在项目中遇到这样一个有关iOS手势的问题,首先需求描述如下:“在一个CollectionView中,要求长按不同的cell,产生一个cell的snapshot,此时可拖拽这个snapshot再进行后续的操作(如拖到view的某个位置出发一个事件)”.需求本身并不复杂,但要求每次只能有一个cell响应长按手势,不允许同时有两个或以上的cell响应长按手势. 我们知道UIGestureRecognizer有很多回调和方法可以兼容同一个View上的多种手势,网上相关的教程也很多,比如: http:

WPF子界面向父界面传递带参数的委托

需求如下: 父界面上有几个按钮,需要在点击按钮的时候向父界面传值,以知道该控制哪个界面显示. 父界面:WIN1 子界面:WIN2 此处或者说是子控件向父控件传值 1.子界面定义委托 WIN1里写: public delegate void ChangeTextHandler(string text); public event ChangeTextHandler ChangeTextEvent; 2.父界面在加载了子界面之后,注册委托.必须在父界面load的时候或者之前注册 WIN2里写: uc

MFC截图和界面刷新相关问题

问题描述: 就是首先用CDC来截图,保存图片的路径通过dlg窗体来手动设置并传入.可是截下来的图片就会连带那个对话框也截图下来. 就是这样,我想截后面那个图,前面这个对话框是要传入一个图片保存路径,可是连这个框也截下来了,就是点击确定后,那个框还没有来得及消失,就截图了, 见图片; 部分代码: 解决方案: 涉及到的函数有: BOOL UpdateWindow(HWND hWnd // 窗口的句柄); 如果窗口更新的区域不为空,UpdateWindow函数通过发送一个WM_PAINT消息来更新指定

MFC 判断子窗体是不是已经打开,避免重复创建

MFC 判断子窗体是否已经打开,避免重复创建 在主窗体中,嵌入一个很多个子窗体,但是,每次只显示一个. 我的做法是,首先在主窗体头文件中定义子窗体对象,然后在单击显示按钮的时候,先判断子窗体是否已经被创建,如果创建了,则ShowWindow(SW_SHOW);将其他已经创建的窗体ShowWindow(SW_HIDE);如果没有创建,则先Create窗体并显示. 在MainDlg.h里面定义: DeviceParam deviceParam;//设备信息窗体 Version ver;//版本信息窗

android viewpager fragment切换时界面卡顿解决办法

目前开发的程序在切换View时界面卡顿现象比较严重,影响用户体验,当前项目共就四个View,每个View也只是按钮,所以可以同时加载,不让其它view销毁. 只需在Adapter中重载destroyItem类即可 @Override public void destroyItem(ViewGroup container, int position, Object object) { //重载该方法,防止其它视图被销毁,防止加载视图卡顿 //super.destroyItem(container,

ubuntu图形界面切换文字界面(文字界面切换图形界面)

在家目录下 输入 :sh .start_mode.sh   ubuntu图形界面切换文字界面或者文字界面切换图形界面 ubuntu图形界面切换到文字界面 :sh .start_mode.sh 同样,文字界面切换图形界面也是:sh .start_mode.sh 原文地址:https://www.cnblogs.com/gd000-/p/10651672.html

CentOS 7 启动与切换图形界面

CentOS 7 启动与切换图形界面 今天打开了新安装的centos 7虚拟机,发现刚进去是DOS界面,原来默认情况下并不会安装图形界面,需要手动安装. 安装图形界面 1.开机root登录 2.安装X(X Window System)命令如下: yum groupinstall "X Window System" 安装完成后出现complete字样. 3.然后安装图形界面软件 GNOME Desktop 命令如下 yum groupinstall "GNOME Desktop