MFC CSplitterWnd 类 受保护方法:CSplitterWnd::OnInvertTracker
CSplitterWnd 类的 OnInvertTracker 方法是一个受保护的方法,用于反转(翻转)跟踪器。在MFC(Microsoft Foundation Classes)中,CSplitterWnd 是一个用于创建分割窗口的类,允许用户调整窗格大小。OnInvertTracker 方法通常用于在调整窗格大小时显示一个反转的跟踪器,以指示用户正在调整窗格的大小。这个方法一般在内部被框架使用,而不是在应用程序代码中直接调用。这是因为它是受保护的,只能在CSplitterWnd类的派生类中被调用。在使用 CSplitterWnd 类时,你一般不需要直接调用 OnInvertTracker 方法。相反,你可能会使用 SetTrackerMode 方法来设置跟踪器的模式,以确定用户是否可以调整窗格的大小。以下是一个简单的示例,演示了如何使用 CSplitterWnd 类和 SetTrackerMode 方法:// 假设你有一个 CMainFrame 类派生自 CFrameWnd 类BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs...
MFC CSplitterWnd 类 受保护方法:CSplitterWnd::OnDrawSplitter
在 MFC(Microsoft Foundation Classes)的 CSplitterWnd 类中,确实存在名为 OnDrawSplitter 的受保护方法。以下是 OnDrawSplitter 方法的签名:virtual void OnDrawSplitter( CDC* pDC, ESplitType nType, const CRect& rectArg);这个方法允许你自定义分隔条的绘制。你可以在派生类中重写这个方法,以实现自定义的绘制效果。参数说明: pDC:指向 CDC 对象的指针,表示绘制的设备上下文。 nType:表示分隔条的类型,可以是 splitterBox(分隔框)、splitterBar(分隔条)或 splitterIntersection(分隔交叉点)。 rectArg:表示分隔条的矩形区域。使用例子:class CMySplitterWnd : public CSplitterWnd{public: // 构造函数等...protected: virtual void OnDrawSplitter( CDC* pD...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::SplitRow
在 MFC(Microsoft Foundation Classes)的 CSplitterWnd 类中,确实有名为 SplitRow 的公共方法。以下是 SplitRow 方法的签名:BOOL SplitRow( int rowBefore);这个方法用于在指定行之前(rowBefore)拆分行。拆分后,rowBefore 行之前的行数会增加一行,新的行会被插入到 rowBefore 行之前。使用例子:pSplitterWnd->SplitRow(1);这个例子演示了如何使用 SplitRow 方法在第二行之前拆分行。
MFC CSplitterWnd 类 公共方法:CSplitterWnd::SetRowInfo
在 MFC(Microsoft Foundation Classes)的 CSplitterWnd 类中,的确有名为 SetRowInfo 的公共方法。具体的函数签名如下:void SetRowInfo( int row, int cyIdeal, int cyMin);这个方法用于设置指定行的信息,包括理想高度和最小高度。这些信息会影响布局计算。参数说明: row:指定要设置信息的行索引。 cyIdeal:指定行的理想高度。 cyMin:指定行的最小高度。使用例子:pSplitterWnd->SetRowInfo(0, 150, 50);这个例子演示了如何使用 SetRowInfo 方法来设置第一行的理想高度为 150 像素,最小高度为 50 像素。
MFC CSplitterWnd 类 公共方法:CSplitterWnd::SetActivePane
在 MFC(Microsoft Foundation Classes)的 CSplitterWnd 类中,确实有名为 SetActivePane 的公共方法。具体的函数签名如下:void SetActivePane( int row, int col, CWnd* pWnd = NULL);这个方法用于设置分隔窗口中的活动窗格,指定活动窗格的行索引和列索引。你可以通过这个方法来将焦点或操作集中在特定的窗格上。参数说明: row:指定活动窗格的行索引。 col:指定活动窗格的列索引。 pWnd:可选参数,用于指定活动窗格的指针。如果为 NULL,表示使用默认的活动窗格。使用例子:pSplitterWnd->SetActivePane(0, 1);这个例子演示了如何使用 SetActivePane 方法来设置分隔窗口中的活动窗格为第一行、第二列的窗格。
MFC CSplitterWnd 类 公共方法:CSplitterWnd::RecalcLayout
在 MFC(Microsoft Foundation Classes)的 CSplitterWnd 类中,确实有名为 RecalcLayout 的公共方法。具体的函数签名如下:virtual void RecalcLayout();这个方法用于重新计算分隔窗口的布局。当分隔窗口的大小发生变化或其他需要重新计算布局的情况发生时,可以调用这个方法。通常,在窗口大小改变、添加或删除分隔条等操作之后,需要调用 RecalcLayout 以确保分隔窗口中的子窗格得到正确的布局。使用例子:pSplitterWnd->RecalcLayout();这个例子演示了如何在需要重新计算布局的时候调用 RecalcLayout 方法。
MFC CSplitterWnd 类 公共方法:CSplitterWnd::GetRowCount
CSplitterWnd::GetRowCount 是 MFC(Microsoft Foundation Classes)中 CSplitterWnd 类的一个公共方法,用于获取分隔窗口的行数。具体的函数签名如下:int GetRowCount() const;这个方法返回一个整数,表示分隔窗口的行数。使用例子:int rowCount = pSplitterWnd->GetRowCount();这个例子演示了如何使用 GetRowCount 方法来获取分隔窗口的行数,并将结果存储在 rowCount 变量中。你可以根据需要使用这个信息进行进一步的处理。
MFC CSplitterWnd 类 公共方法:CSplitterWnd::GetPane
CSplitterWnd::GetPane 是 MFC(Microsoft Foundation Classes)中 CSplitterWnd 类的一个公共方法,用于获取分隔窗口中的一个窗格的指针。具体的函数签名如下:CWnd* GetPane( int row, int col) const;参数说明: row:要获取的窗格的行索引。 col:要获取的窗格的列索引。返回值是指向指定窗格的指针(CWnd* 类型)。如果指定的窗格不存在,返回值将为 NULL。使用例子:CWnd* pPane = pSplitterWnd->GetPane(0, 1);if (pPane != NULL) { // 处理获取到的窗格指针} else { // 指定的窗格不存在的处理逻辑}这个例子演示了如何使用 GetPane 方法来获取分隔窗口中指定行和列索引的窗格,并根据返回值进行相应的处理。如果返回的指针不为 NULL,表示窗格存在,你可以对其进行进一步的操作。如果返回 NULL,则表示指定的窗格不存在。
MFC CSplitterWnd 类 公共方法:CSplitterWnd::GetColumnCount
CSplitterWnd::GetColumnCount 是 MFC(Microsoft Foundation Classes)中 CSplitterWnd 类的一个公共方法,用于获取分隔窗口的列数。具体的函数签名如下:int GetColumnCount() const;这个方法返回一个整数,表示分隔窗口的列数。使用例子:int columnCount = pSplitterWnd->GetColumnCount();这个例子演示了如何使用 GetColumnCount 方法来获取分隔窗口的列数,并将结果存储在 columnCount 变量中。你可以根据需要使用这个信息进行进一步的处理。
MFC CSplitterWnd 类 公共方法:CSplitterWnd::GetActivePane
CSplitterWnd::GetActivePane 是 MFC(Microsoft Foundation Classes)中 CSplitterWnd 类的一个公共方法,用于获取当前活动的分隔窗口的一个指针。具体的函数签名如下:CWnd* GetActivePane( int* pRow = NULL, int* pCol = NULL, BOOL* pbMaximized = NULL) const;参数说明: pRow:一个可选的指针,用于接收活动窗格的行索引。 pCol:一个可选的指针,用于接收活动窗格的列索引。 pbMaximized:一个可选的指针,用于接收一个布尔值,指示活动窗格是否处于最大化状态。返回值是指向当前活动窗格的指针(CWnd* 类型)。如果没有活动窗格,返回值将为 NULL。使用例子:CWnd* pActivePane = pSplitterWnd->GetActivePane();if (pActivePane != NULL) { // 处理活动窗格} else { // 没有活动窗格的处理逻辑}这个例子演示了如何使用 G...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::DoScrollBy
CSplitterWnd::DoScrollBy 是 MFC(Microsoft Foundation Classes)中 CSplitterWnd 类的一个公共方法,用于实现滚动功能。这个方法的目的是在水平或垂直方向上滚动分隔窗口中的视图。具体的函数签名和说明如下:virtual void DoScrollBy( CSize sizeScroll, BOOL bDoScroll = TRUE);参数说明: sizeScroll:指定滚动的偏移量,是一个 CSize 对象,包含了水平和垂直方向上的偏移值。 bDoScroll:一个布尔值,指定是否真正执行滚动。如果为 TRUE,表示执行滚动;如果为 FALSE,表示仅计算滚动偏移而不实际滚动。这个方法通常在响应滚轮事件或其他需要进行视图滚动的情况下被调用,以便调整分隔窗口中各个视图的显示位置。使用例子:CSize scrollOffset(10, 0); // 以水平方向滚动10个像素pSplitterWnd->DoScrollBy(scrollOffset);这个例子演示了如何在水平方向上滚动 CSplitterWnd ...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::DeleteView
在 MFC(Microsoft Foundation Classes)中,CSplitterWnd 类提供了 DeleteView 方法,用于删除指定位置的视图。以下是 CSplitterWnd::DeleteView 方法的签名和简要说明:void DeleteView(int row, int col); row: 要删除视图所在的行索引。 col: 要删除视图所在的列索引。这个方法用于删除指定位置的视图,并且相应的窗格将会重新布局。示例代码:CSplitterWnd splitter;// 假设 splitter 是已经创建好的 CSplitterWnd 对象int rowToDelete = 1;int colToDelete = 0;// 删除指定位置的视图splitter.DeleteView(rowToDelete, colToDelete);// 重新计算布局splitter.RecalcLayout();这个示例演示了如何删除分隔窗格中指定位置的视图,并通过调用 RecalcLayout 方法来重新计算布局。请注意,这只是一个简单的示例,实际使用时可能需要更多的处理,...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::DeleteRow
在 MFC(Microsoft Foundation Classes)中,CSplitterWnd 类提供了 DeleteRow 方法,用于删除指定的行。以下是 CSplitterWnd::DeleteRow 方法的签名和简要说明:void DeleteRow(int row); row: 要删除的行的索引。这个方法用于删除指定行,删除行后,相应的子视图将会被删除,窗格重新布局。示例代码:CSplitterWnd splitter;// 假设 splitter 是已经创建好的 CSplitterWnd 对象// 获取当前行数int nRows = splitter.GetRowCount();// 确保至少有两行,以防止删除最后一行导致的问题if (nRows > 1){ // 获取当前活动视图的索引 int nActiveRow, nActiveCol; splitter.GetActivePane(&nActiveRow, &nActiveCol); // 获取当前行的视图指针 CView* pCurrentView = (CVi...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::CreateView
在 MFC(Microsoft Foundation Classes)中,CSplitterWnd 类的 CreateView 方法用于在分隔窗格中创建视图,并将视图插入到指定的行列位置。以下是 CSplitterWnd::CreateView 方法的签名和简要说明:BOOL CreateView( int row, int col, CRuntimeClass* pViewClass, SIZE sizeInit, CCreateContext* pContext); row: 视图要插入的行索引。 col: 视图要插入的列索引。 pViewClass: 视图类的运行时类信息。 sizeInit: 视图的初始大小。 pContext: 创建窗口的上下文。示例代码:CSplitterWnd splitter;// 假设 pParentWnd 是分隔窗格的父窗口CWnd* pParentWnd = this; // 请根据实际情况替换为你的父窗口指针if (splitter.CreateStatic(pParentWnd, 2, 2, WS_CHILD |...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::CreateStatic
在 MFC(Microsoft Foundation Classes)中,CSplitterWnd 类提供了 CreateStatic 方法,用于在分隔窗格中创建静态布局。以下是 CSplitterWnd::CreateStatic 方法的签名和简要说明:BOOL CreateStatic( CWnd* pParentWnd, int nRows, int nCols, DWORD dwStyle = WS_CHILD | WS_VISIBLE, UINT nID = AFX_IDW_PANE_FIRST); pParentWnd: 指定分隔窗格的父窗口。 nRows: 指定行数。 nCols: 指定列数。 dwStyle: 指定窗口样式。 nID: 指定窗口标识符。此方法用于创建一个具有静态布局的 CSplitterWnd,其中每个分隔窗格都包含一个固定的子视图。示例代码:CSplitterWnd splitter;// 假设 pParentWnd 是分隔窗格的父窗口CWnd* pParentWnd = this; // 请根据实际情况替换为你的父窗口...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::Create
在 MFC(Microsoft Foundation Classes)中,CSplitterWnd 类提供了 Create 方法来创建分隔窗格控件。以下是 CSplitterWnd::Create 方法的签名和简要说明:BOOL Create( CWnd* pParentWnd, int nRows, int nCols, SIZE sizeMin, CCreateContext* pContext = NULL, DWORD dwStyle = WS_CHILD | WS_VISIBLE | SPLS_DYNAMIC_SPLIT); pParentWnd: 指定分隔窗格的父窗口。 nRows: 指定行数。 nCols: 指定列数。 sizeMin: 指定分隔窗格的最小尺寸。 pContext: 指定创建窗口的上下文。 dwStyle: 指定窗口样式。示例代码:CSplitterWnd splitter;// 假设 pParentWnd 是分隔窗格的父窗口CWnd* pParentWnd = this; // 请根据实际情况替换为你的父窗口指针if...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::ActivateNext
在 MFC(Microsoft Foundation Classes)中,CSplitterWnd 类没有直接提供 ActivateNext 方法。通常,激活下一个视图的操作可以通过获取当前活动视图的索引,然后根据需要切换到下一个视图来实现。以下是一个示例代码,演示如何在 CSplitterWnd 中激活下一个视图:CSplitterWnd splitter;// 假设 splitter 是已经创建好的 CSplitterWnd 对象// 获取当前活动视图的索引int nActiveRow, nActiveCol;splitter.GetActivePane(&nActiveRow, &nActiveCol);// 计算下一个视图的索引int nNextRow = nActiveRow;int nNextCol = nActiveCol + 1; // 这里简单地选择下一列,你可以根据需要调整算法// 检查是否超出列数,如果是,则切换到下一行的第一个列int nCols = splitter.GetColumnCount();if (nNextCol >= nC...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::SplitRow
在 MFC(Microsoft Foundation Classes)中,CSplitterWnd 类没有直接提供 SplitRow 方法。但是你可以使用 CreateView 方法来动态创建一个新的视图并插入到分隔窗格中。以下是一个简化的示例:CSplitterWnd splitter;// 假设 splitter 是已经创建好的 CSplitterWnd 对象// 获取当前行的视图指针CView* pCurrentView = (CView*)splitter.GetPane(0, 0);// 创建一个新的视图CNewView* pNewView = new CNewView;// 假设 CNewView 是你的新视图类// 在第 1 行、第 0 列插入新的视图splitter.CreateView(1, 0, RUNTIME_CLASS(CNewView), CSize(0, 0), pContext);// 如果需要,释放旧的视图if (pCurrentView != nullptr){ // 将旧视图从布局中移除 splitter.DeleteView(0, 0)...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::SplitColumn
在 MFC(Microsoft Foundation Classes)中,CSplitterWnd 类没有直接提供 SplitColumn 方法。通常,分隔窗格的操作是通过设置列的信息和重新计算布局来完成的。然而,如果你想要在运行时分隔列,可以使用 CreateView 方法动态创建一个新的视图并插入到分隔窗格中。以下是一个简化的示例:CSplitterWnd splitter;// 假设 splitter 是已经创建好的 CSplitterWnd 对象// 获取当前列的视图指针CView* pCurrentView = (CView*)splitter.GetPane(0, 0);// 创建一个新的视图CNewView* pNewView = new CNewView;// 假设 CNewView 是你的新视图类// 在第 0 行、第 1 列插入新的视图splitter.CreateView(0, 1, RUNTIME_CLASS(CNewView), CSize(0, 0), pContext);// 如果需要,释放旧的视图if (pCurrentView != nullptr){...
MFC CSplitterWnd 类 公共方法:CSplitterWnd::SetRowInfo
在 MFC(Microsoft Foundation Classes)中,CSplitterWnd 类的 SetRowInfo 方法用于设置行的信息,包括行的最小和最大大小。void SetRowInfo(int row, int cyIdeal, int cyMin); row 是要设置信息的行的索引。 cyIdeal 是行的理想大小(以像素为单位)。 cyMin 是行的最小大小(以像素为单位)。通常,这个方法可以用于在多窗格布局中设置行的大小信息,以确保用户可以以可接受的方式调整行的大小。示例使用:CSplitterWnd splitter;// 假设 splitter 是已经创建好的 CSplitterWnd 对象// 设置第 0 行的信息splitter.SetRowInfo(0, 150, 30);这个例子设置第 0 行的理想大小为 150 像素,最小大小为 30 像素。你可以根据实际需要调整这些值。