mfc 重置view
时间: 2023-08-19 13:10:21 浏览: 48
回答: 如果你想重置MFC的View,你可以按照以下步骤进行操作。首先,在你的工程的.cpp文件中的InitInstance函数中,找到cmdInfo变量初始化完成后的代码段。在这段代码后面添加如下代码://关闭默认打开的空白文档 cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing; 这样就可以关闭默认打开的空白文档了。[1]
接下来,你需要将class view、文档窗口和属性窗口从工程中去掉。你可以删除与这些相关的.h和.cpp文件,例如class view、fileview、PropertiesWnd等。删除完这些文件后,你的项目就会变成你想要的样子了。[2]
最后,如果你想编辑菜单和窗口,你可以在资源视图中进行查看和编辑。你可以使用鼠标点击来添加菜单栏,使用delete键来删除菜单栏。对于工具栏,你可以使用鼠标拖拽来删除工具栏,点击工具栏中的最后一个图标来添加新的图标。在删除工具栏时,不要全部删除,保留一个自身的图标,并添加一个新的图标以保证功能正常,否则可能会出现错误。[3]
相关问题
MFC view 不调用OnInitialUpdate
MFC中的View类的OnInitialUpdate函数是在视图被创建后首次显示前被调用的。如果你的MFC View类没有调用OnInitialUpdate函数,可能是以下几个原因之一:
1. 你没有在创建视图后调用CView类的OnInitialUpdate函数。通常在视图类的Create函数中调用OnInitialUpdate函数,例如:
```
BOOL CMyView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext)
{
if (!CView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext))
return FALSE;
OnInitialUpdate(); //调用OnInitialUpdate函数
return TRUE;
}
```
2. 你没有在创建视图时指定正确的创建上下文(CCreateContext)。在创建视图时,需要指定正确的创建上下文,包括文档对象指针等信息。如果创建上下文不正确,OnInitialUpdate函数可能不会被调用。例如:
```
CMyView* pView = new CMyView;
CCreateContext* pContext = new CCreateContext;
pContext->m_pCurrentDoc = pDoc; //指定文档对象指针
pView->Create(NULL, NULL, WS_CHILD | WS_VISIBLE, rect, pParentWnd, nID, pContext);
```
3. 你在重写OnInitialUpdate函数时没有调用基类的实现。如果你重写了OnInitialUpdate函数,需要在自己的实现中调用基类的实现,以确保MFC框架能够正确处理视图的初始化过程。例如:
```
void CMyView::OnInitialUpdate()
{
CView::OnInitialUpdate(); //调用基类的实现
//自己的初始化代码
}
```
MFC中view如何切换dialog
在 MFC 中,可以通过以下步骤在视图(View)和对话框(Dialog)之间进行切换:
1. 在对话框资源中创建一个新的对话框。
2. 在视图类中添加成员变量,用来保存对话框对象的指针。
3. 在视图类的头文件中添加一个函数,用于显示对话框并更新成员变量的指针。
4. 在视图类的头文件中添加一个消息映射,用于处理切换到对话框的消息。
5. 在视图类的实现文件中实现切换到对话框的消息处理函数,其中调用上述显示对话框的函数。
6. 在对话框类的头文件中添加一个消息映射,用于处理切换回视图的消息。
7. 在对话框类的实现文件中实现切换回视图的消息处理函数,其中调用视图的 ShowWindow 函数将其显示出来。
具体实现细节可以参考 MFC 的官方文档或者一些相关的教程。