CBCGPTabWnd 父页面怎么向子页面CBCGPDialog传值
时间: 2024-03-09 18:46:03 浏览: 26
您可以在 CBCGPTabWnd 的父页面中定义一个公共的变量,然后在 CBCGPDialog 子页面中通过该变量来传值。具体步骤如下:
1. 在 CBCGPTabWnd 的父页面中定义一个公共变量,例如:
```cpp
public:
CString m_strValue;
```
2. 在 CBCGPDialog 子页面中添加一个成员变量用来保存父页面的指针,例如:
```cpp
private:
CMyParentWnd* m_pParentWnd;
```
3. 在 CBCGPDialog 子页面的构造函数中初始化父页面指针,例如:
```cpp
CMyDialog::CMyDialog(CMyParentWnd* pParent /*=NULL*/)
: CDialog(IDD_MY_DIALOG, pParent)
{
m_pParentWnd = pParent;
}
```
4. 在 CBCGPDialog 子页面的 OnInitDialog 函数中获取父页面传递的值,例如:
```cpp
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
CString strValue = m_pParentWnd->m_strValue;
return TRUE;
}
```
通过以上步骤,您就可以在 CBCGPTabWnd 的父页面中向 CBCGPDialog 子页面传递值了。
相关问题
父页面CBCGPTabWnd 怎么向子页面CBCGPDialog传值
您可以在 CBCGPTabWnd 中定义一个公共的函数,然后在 CBCGPDialog 子页面中调用该函数来传值。具体步骤如下:
1. 在 CBCGPTabWnd 中定义一个公共函数,例如:
```cpp
public:
void SetDialogValue(const CString& strValue);
```
2. 在 CBCGPDialog 子页面中添加一个成员变量用来保存父页面的指针,例如:
```cpp
private:
CMyParentWnd* m_pParentWnd;
```
3. 在 CBCGPDialog 子页面的构造函数中初始化父页面指针,例如:
```cpp
CMyDialog::CMyDialog(CMyParentWnd* pParent /*=NULL*/)
: CDialog(IDD_MY_DIALOG, pParent)
{
m_pParentWnd = pParent;
}
```
4. 在 CBCGPDialog 子页面中调用 CBCGPTabWnd 中的函数来传值,例如:
```cpp
void CMyDialog::OnButtonClicked()
{
CString strValue = "Hello, World!";
m_pParentWnd->SetDialogValue(strValue);
}
```
5. 在 CBCGPTabWnd 中的 SetDialogValue 函数中获取传递的值并将其保存,例如:
```cpp
void CMyParentWnd::SetDialogValue(const CString& strValue)
{
m_strValue = strValue;
}
```
通过以上步骤,您就可以在 CBCGPTabWnd 的父页面中向 CBCGPDialog 子页面传递值了。
CBCGPTabWnd CreateOnPlaceHolder添加页面
对于 CBCGPTabWnd 类来说,可以使用 CreateOnPlaceHolder 函数来添加页面。此函数的作用是在指定的占位符位置创建一个新的标签页,并返回该标签页的指针。
以下是使用 CreateOnPlaceHolder 函数添加页面的示例代码:
1. 首先需要创建一个 CBCGPTabInfo 对象,并设置标签页的属性,例如标题、图标等。
```
CBCGPTabInfo tabInfo(_T("New Page"), (UINT)0, NULL, (CRuntimeClass*) NULL, FALSE);
```
2. 然后找到要插入标签页的占位符位置。
```
CBCGPTabWnd* pTabWnd = GetTabControl();
int nInsertIdx = pTabWnd->FindTabPlaceholder();
```
3. 最后调用 CreateOnPlaceHolder 函数创建新的标签页。
```
CBCGPDockingControlBar* pNewBar = new CBCGPDockingControlBar;
if (!pTabWnd->CreateOnPlaceHolder(pNewBar, nInsertIdx, &tabInfo))
{
delete pNewBar;
}
```
这样就可以在占位符位置添加一个新的标签页了。注意,在使用 CreateOnPlaceHolder 函数时,需要将新创建的标签页放到一个 CBCGPDockingControlBar 对象中,并将该对象作为第一个参数传递给 CreateOnPlaceHolder 函数。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)