在 MFC 中创建标尺条
Creating a ruler bar in MFC
在SDI应用程序中创建垂直和水平标尺条的最佳方法是什么? 你会让它成为框架或视图的一部分吗? 从CControlBar派生它,或者有更好的方法吗?
垂直标尺还必须停靠在窗格而不是框架上。
为了更清楚地了解我所追求的内容,请想象Visual Studio(仅限MFC)中对话框编辑器中的垂直标尺。每当调整树视图的大小时,它都会重新定位。
我不会使用控制栏。我没有充分的理由,那么(恕我直言)很难做你想做的事情 - 如果你想要的,而不是停靠工具栏。
我只是使用 GDI 调用直接在"视图"窗口中绘制它们。
我想我可能会考虑让每个标尺成为自己的窗口,并在自己的窗口上绘制标尺。然后,我将在视图中创建这两个 CWnd 派生类,并将位置作为子窗口。如果您想在这些标尺上与鼠标进行交互,这很好(更容易理清标尺的消息)。
我最终按照您的建议从 CWnd 派生了标尺并跳过了控制栏路线。 此代码适用于任一情况:
m_wndSplitter.CreateStatic(this, 1, 3);
m_wndLeftPane.Create(&m_wndSplitter,WS_CHILD|WS_VISIBLE,m_wndSplitter.IdFromRowCol(0, 0));
m_ruler.Create(&m_wndSplitter,WS_CHILD|WS_VISIBLE,m_wndSplitter.IdFromRowCol(0, 1));
m_wndSplitter.CreateView(0, 2, pContext->m_pNewViewClass, CSize(300, 0), pContext);
SetActiveView((CScrollView*)m_wndSplitter.GetDlgItem(m_wndSplitter.IdFromRowCol(0, 2)));
相关文章:
- 从 bmp 文件数据创建 MFC CBitmap
- 如何创建一个接口,允许我访问C++中的按钮(和其他ui)函数,该函数是使用python中的MFC实现的
- 为什么隐藏文件无法在 MFC 中的创建和写入模式下打开?
- 如何创建一个新过程,而没有从管理模式运行的MFC应用程序中的管理特权
- 如何在 MFC 中创建"CArray<CArray<CString>>& results"?
- 如何在MFC对话框上绘制/创建GDI
- 我们可以使用mfc应用程序创建pdf文件吗
- 如何在 MFC[CFormView] 中创建 3D 文本
- 创建不会阻止主应用 MFC 的对话框
- 创建非托管常规 MFC DLL 并从托管 C++ .NET 应用调用它时出现问题
- 在 VC++ MFC 中创建另一个鼠标光标
- Windows 7:MFC ActiveX 控件不会在任何文件夹中创建文件
- MFC C对话框::在x64上创建挂起
- 如何创建一个可以在GUI对话模式下或通过命令行启动的C MFC程序
- C MFC创建编辑控件可以拥有的最大数字
- 在 MFC 中创建 CPaneDialog 时断言失败
- 在 MFC 中创建带有事件的工具栏
- C++动态创建的MFC视觉工作室填充组合框
- 我自己的C++框架(类似MFC),我可以创建子窗口,但不能在WM_create时创建编辑框
- 如何用多类创建MFC扩展dll