MFC中如何更改窗体名字

这种窗体是怎么实现的

你贴的那个是用MFC的tab控件实现的。

关于tab控件的使用,下面有一个例子

1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl
2、创建两个新的对话框资源,其属性作如下修改:
Border:none //边界为空,这样它就没了标题栏
Style :Child // 这样这个模板就可以当作另一个窗口的子窗口了。其它如果没有必要,就不用改了。
在上面加一些控件什么的,具体操作跟普通对话框没有区别。
完成后从这两个对话框模板生成两个新的对话框类。
3、在主对话框中为新添加进来的两个类增加两个变量:
如:CDialog1 m_mm1;
CDialog2 m_mm2;
4、在主对话框的OnInitDialog()函数中添加如下类似的代码:
TCITEM item;
item.mask = TCIF_TEXT;
item.pszText = "第一页";
m_tabctrl.InsertItem (0,&item);
item.pszText ="第二页";
m_tabctrl.InsertItem (1,&item);
m_mm1.Create (IDD_DIALOG1,&m_tabctrl);
m_mm2.Create (IDD_DIALOG2,&m_tabctrl);
m_mm1.SetWindowPos (NULL,10,30,400,100,SWP_SHOWWINDOW);
m_mm2.SetWindowPos (NULL,10,30,400,100,SWP_HIDEWINDOW );
解释如下:
两个InsertItem函数的调用是为了给标签控件增加两个标签页面,文本是标题。
SetWindowPos()函数设置这两个对话框在Z顺序中的位置,显示或隐藏状态.。
5、在主对话中为标签控件添加一个标签选择改变(TCN_SELCHANGE)的控件通知消息,以便在用户选择标签时通知主对话框。在主对话框的编辑界面右击标签控件,选择添加一个事件可以完成这个操作。
在事件处理中添加如下代码,如下例:
void CtabdialogDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
CRect r;
m_tabctrl.GetClientRect (&r);
switch(m_tabctrl.GetCurSel())
{
case 0:
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW);
m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW );
break;
case 1:
m_mm1.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_HIDEWINDOW);
m_mm2.SetWindowPos (NULL,10,30,r.right -20,r.bottom -40,SWP_SHOWWINDOW );
break;
}
*pResult = 0;
}
要想知道用户选择那个标签页,要通过m_tabctrl.GetCurSel() 函数。为了不使显示的子对话框覆盖标签控件的显示,所以要获得标签控件的尺寸然后设置各页面的尺寸。
或者:
m_Tab.InsertItem(0,"第一页");
m_Tab.InsertItem(1,"第二页");
m_Tab.InsertItem(2,"第三页");
m_Tab.InsertItem(3,"第四页");
m_PageA.Create(IDD_PROPPAGE_A,&m_Tab);
m_PageB.Create(IDD_PROPPAGE_B,&m_Tab);
m_PageC.Create(IDD_PROPPAGE_C,&m_Tab);
m_PageD.Create(IDD_PROPPAGE_D,&m_Tab);
m_PageA.ShowWindow(SW_SHOW);
m_PageB.ShowWindow(SW_HIDE);
m_PageC.ShowWindow(SW_HIDE);
m_PageD.ShowWindow(SW_HIDE);追问

在我代码里面没有tabctrl这个类。只看到有个addpage函数

追答

那你用的就是属性页这个方法来添加的。

关于属性页的操作,这里有一个例子
http://blog.csdn.net/lan_liang/article/details/7278660

追问

能加我企鹅帮忙不?很急1123991298

追答

好的

温馨提示:内容为网友见解,仅供参考
无其他回答

MFC中如何更改窗体名字
1、首先创建一个MFC对话框框架,在对话框资源上从工具箱中添加上一个Tab Control 控件,根据需要修改一下属性,然后右击控件,为这个控件添加一个变量,将此控件跟一个CTabCtrl类变量绑定在一起,这里设为m_tabctrl 2、创建两个新的对话框资源,其属性作如下修改:Border:none \/\/边界为空,这样它就没...

vs2010环境下,MFC如何修改窗体名字?
我用的是vs2015,在[解决方案资源管理器]中找到[资源文件],选择后缀名为“.rc”的项目,右键“查看代码”,在打开的界面中搜索“caption”,更改名字即可。1.2.3.4.

[MFC]如何改变对话框EDIT Control内控件的字体?
下面的内容,给你一个解答. [解决方法] 简单的步骤:在Windows中,每个窗体都有自己的字体.要改变其字体首先要CFont::CreateFont创建一个字体,然后用CWnd::SetFont选择此字体,赋给控件.但很多人可能会因为CreateFont的参数之多,望而却步.下面我介绍一下参数. 函数原型: BOOL CreateFont( int nHeight, i...

MFC中,不同对话框窗体的控件ID有时候能设置成一样的名字,有时候不能设...
没有消息处理的空间就可以设置成一样的名字,例如IDC_STATIC...

用mfc改窗体时 无法定位程序输入点于动态链接库
1) 修改资源字符串:将资源文件中的IDR_MAINFRAME修改为 修改此处\/n\/nChange\/n\/n\/nChangeTitle.Document\/nChange Document 资源字符串中各子串的含义可以参考:IDR_MAINFRAME字符串资源中各子串的含义 2) 使用框架窗口类的SetWindowText(L"你的标题"):在应用程序类CTestApp::InitInstance()中调用如下...

MFC如何修改按钮,静态文本等的字体
修改按钮所属的窗体的字体即可,这样窗体上所有的控件的字体会相应的改变,点中窗体-》右键-》属性-》Font,如果看不到效果,尝试重新添加一下控件。

MFC更改窗格所对应的类的更改!!!
你知道对话框嵌入吗?你把右上角所要的所有类都对应一个对话框。然后根据右下角的选择,让不同的对话框hide或者show就可以了

MFC下如何去掉对话框的标题栏
如果是VC的话,单击窗体,在窗体上空白处按鼠标右键打开菜单,选择"属性"(即properties),在选择"ctyles"选项卡,去掉"Title bar"前面的勾即可

MFC子进程中改变控件值问题
比较简单的一种方法是创建线程的时候,把当前窗体类对象指针传给线程函数,然后在线程函数里就可以访问窗体类的成员了了。比如:创建线程:AfxBeginThread(thread, this, 0, 0, 0, NULL); \/\/thread为你的线程执行函数然后,在thread函数里:UINT thread( LPVOID pParam ){ \/\/假设你的对话框类名...

MFC,怎么判断一个窗体是否存在
::FindWindow(窗口类名, 窗口标题 ), 如果返回的句柄不为NULL, 则表示这个窗口存在

相似回答