有关菜单项响应代码添加问题。 我不知道这样表达是否合适,问题就是利用向导生成的单文档菜单的“打开”按钮的代码在哪里添加,我看了好像没有找到消息响应函数,不知道这是为什么,希望大家指点下,谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是继承基类的功能, 如果你要修改, 则需重载文档的 OnOpenDocument 事件. 我下载了一个小的程序,它好像修改了“打开”响应事件,但是我也没有找到OnOpenDocument 类向导里class name选择文档(DOC)类,Object IDs选文档类,不要选择ID,在右边messages拖动列表框便能看到OnOpenDocument,选中,点击增虽函数便OK。 可以在VC界面上方搜索框里输入OnOpenDocument,在整个工程里面搜索。 非常谢谢你!我找到OnOpenDocument了,我的问题是:“打开”是用来打开一个位图,很明显“打开”的功能是改变了,因为向导生成的是不能打开位图的,但是OnOpenDocument现在还是一个没有添加的函数,所以我就有点奇怪了。 就是我下载了一个位图读写类(MYDIB),里面附带了一个小例子,功能是打开或者保存一幅位图,在这个小例子中,文件-打开的功能就是用来打开一幅位图的,但是我怎么没有找到“打开”的相应代码到底在哪里?而且OnOpenDocument还是一个未添加的函数,就是小例子中根本就没有OnOpenDocument,所以我就不明白这个小例子中的“打开”功能到底在什么地方实现的。 你的目标是打开一个位图文件。按照文档-视图的惯例,你应该在你的文档类CXxxDoc里添加一个成员变量,如:m_FileData。当文件读到m_FileData变量里时,通知CXxxView类去显示它。因此,你要打开文件,需要重载CXxxDoc类的虚函数:OnOpenDocument(LPCTSTR lpszPathName)具体做法是:到类视图选项卡里,右键单击你的CXxxDoc类,选择Add Virtual Function(添加虚函数),选择OnOpenDocument,点OK,就添加好了,VC会给你生成个类似下边的函数,你在里边读文件就可以了:BOOL CXxxDoc::OnOpenDocument(LPCTSTR lpszPathName) { if (!CDocument::OnOpenDocument(lpszPathName)) return FALSE; // TODO: Add your specialized creation code here return TRUE;} 如果可以的话,给我传份代码看下?[email protected] 你打开的处理函书应该是OnFileOpen(),(ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)) ________________他调用了CWinApp的OnFileOpen,所以在MyDib.h中应该包含#include <afxwin.h>在你的MyDib.h中有以下定义:#ifndef __AFXWIN_H__ #error include 'stdafx.h' before including this file for PCH 唉,难道利用MFC向导生成的单文档应用程序里面的文件--打开它本身就可以实现位图的显示吗?据我所知不可以,但是我不明白的是“打开”位图的功能的代码到底在哪里??? 在MyDib.rc资源文件的260行有以下代码:IDR_MAINFRAME "MyDib\n\nMyDib\nMyDib 文件 (*.txt)\n.bmp\nMyDib.Document\nMyDib Document"这行代码所起的作用! 上面的("MyDib\n\nMyDib\nMyDib 文件 (*.txt))是我测试时修改的。你的程序是*.bmp. -------- 就是我下载了一个位图读写类(MYDIB),里面附带了一个小例子,功能是打开或者保存一幅位图,在这个小例子中,文件-打开的功能就是用来打开一幅位图的,但是我怎么没有找到“打开”的相应代码到底在哪里?"你还要在你打开文档的函数中修改,修改后你的视图中也要能"接受"打开的文件"这个到底要怎么做啊。谢了! C语言 + ODBC API 为什么运行第二次就出现错误了? 远程登录下光标出现重影 我想定义一个画笔数组 为什么新加一个atl对像后,regsvr32会失败 急急急!如何修改标准的打开对话框?! VC如何调用水晶报表,清高手指点 关于串口通信的问题!!分不够再加! 请教一个绘图的问题 ■■■■在线等待!!关于Smart Card的Windows API资料,谁有?★★★ 请问MFC42D.dll是随VC还是Windows发布的? 关于VC中的变量设置? ###程序如何知道当前用哪个用户来运行?[有点难]
因此,你要打开文件,需要重载CXxxDoc类的虚函数:OnOpenDocument(LPCTSTR lpszPathName)
具体做法是:到类视图选项卡里,右键单击你的CXxxDoc类,选择Add Virtual Function(添加虚函数),选择OnOpenDocument,点OK,就添加好了,VC会给你生成个类似下边的函数,你在里边读文件就可以了:
BOOL CXxxDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;
// TODO: Add your specialized creation code here
return TRUE;
}
[email protected]
________________
他调用了CWinApp的OnFileOpen,所以在MyDib.h中应该包含#include <afxwin.h>
在你的MyDib.h中有以下定义:
#ifndef __AFXWIN_H__
#error include 'stdafx.h' before including this file for PCH
IDR_MAINFRAME "MyDib\n\nMyDib\nMyDib 文件 (*.txt)\n.bmp\nMyDib.Document\nMyDib Document"
这行代码所起的作用!
--------