要如何实现呢,用多个文档模板?可是我只用一个文档模板就实现了所有功能(包括图片读取保存复制粘贴等等),只是保存的时候图片位数不一样罢了。重写"新建""打开""保存""另存为"命令的实现吗,好像有点麻烦,点保存的时候如何知道已经保存过了而不用再选择保存路径,未保存过的如何知道选择了哪种位数的保存方式。有这方面的例子吗,先说声谢谢了。
9 个解决方案
#1
都是同一个格式的,不用使用多个模板,一个就够了,使用的时候可以根据BITMAPINFOHEDER信息来判断具体位数
点击"打开"的时候将路径保存,保存的时候根据当前保存的路径直接写
保存的时候你不用管是多少位的,反正都是BMP格式的,你写文件头的时候就已经写入是多少位的了
点击"打开"的时候将路径保存,保存的时候根据当前保存的路径直接写
保存的时候你不用管是多少位的,反正都是BMP格式的,你写文件头的时候就已经写入是多少位的了
#2
没太明白你的意思哈,按我理解的
struct MYBMPINFO
{
MyBitmap * pBmp;//你的图片类型
int iType; //本图片的保存模式,有默认值,如果选择了则改成相应值
bool bIsSaved; //是否保存过...
}
也可以归到你图片类中
struct MYBMPINFO
{
MyBitmap * pBmp;//你的图片类型
int iType; //本图片的保存模式,有默认值,如果选择了则改成相应值
bool bIsSaved; //是否保存过...
}
也可以归到你图片类中
#3
BITMAPINFOHEADER 结构的biBitCount (每像素所
占bit 数) 成员来区别,biBitCount 为1 (黑白二色图) 、4 (16 色图) 、8 (256 色图) 时由颜色表项数
指出颜色表大小,biBitCount 为16 (16 位色图) 、24 (真彩色图) 、32 (32 位色图) 时没有颜色表
占bit 数) 成员来区别,biBitCount 为1 (黑白二色图) 、4 (16 色图) 、8 (256 色图) 时由颜色表项数
指出颜色表大小,biBitCount 为16 (16 位色图) 、24 (真彩色图) 、32 (32 位色图) 时没有颜色表
#4
事实上文件就是某一种格式的,当保存为另外的格式的时候,进行相应的转换就可以了
比如一个16位位图,保存的时候选择了单色位图,那么先对图像进行灰度图像转化后保存即可
比如一个16位位图,保存的时候选择了单色位图,那么先对图像进行灰度图像转化后保存即可
#5
关于图像转换,可以搜索一下相关资料,以有很多源码、算法可以参考
#6
使用GetSaveFileName,那么ofn.nFilterIndex可以只是你保存文件的详细类型,俺的程序里面使用.doc或者.rtf,ofn.nFilterIndex应该是1或者2.
#7
只要知道不同后缀名的相应文件格式,保存的时候按那个格式转换一下就行了
#8
MS楼主只是想知道如何使用保存对话框。看看MSDN就可了。新建,保存,打开的重写就和你添加一个菜单的响应一样啊。
#9
问题解决了,重写"新建""打开""保存""另存为"命令 是有点麻烦,好在这部分代码mfc是有公开的,Microsoft Visual Studio 6\VC98\MFC\SRC下的DOCMGR.CPP等等,修改下就是了。
#1
都是同一个格式的,不用使用多个模板,一个就够了,使用的时候可以根据BITMAPINFOHEDER信息来判断具体位数
点击"打开"的时候将路径保存,保存的时候根据当前保存的路径直接写
保存的时候你不用管是多少位的,反正都是BMP格式的,你写文件头的时候就已经写入是多少位的了
点击"打开"的时候将路径保存,保存的时候根据当前保存的路径直接写
保存的时候你不用管是多少位的,反正都是BMP格式的,你写文件头的时候就已经写入是多少位的了
#2
没太明白你的意思哈,按我理解的
struct MYBMPINFO
{
MyBitmap * pBmp;//你的图片类型
int iType; //本图片的保存模式,有默认值,如果选择了则改成相应值
bool bIsSaved; //是否保存过...
}
也可以归到你图片类中
struct MYBMPINFO
{
MyBitmap * pBmp;//你的图片类型
int iType; //本图片的保存模式,有默认值,如果选择了则改成相应值
bool bIsSaved; //是否保存过...
}
也可以归到你图片类中
#3
BITMAPINFOHEADER 结构的biBitCount (每像素所
占bit 数) 成员来区别,biBitCount 为1 (黑白二色图) 、4 (16 色图) 、8 (256 色图) 时由颜色表项数
指出颜色表大小,biBitCount 为16 (16 位色图) 、24 (真彩色图) 、32 (32 位色图) 时没有颜色表
占bit 数) 成员来区别,biBitCount 为1 (黑白二色图) 、4 (16 色图) 、8 (256 色图) 时由颜色表项数
指出颜色表大小,biBitCount 为16 (16 位色图) 、24 (真彩色图) 、32 (32 位色图) 时没有颜色表
#4
事实上文件就是某一种格式的,当保存为另外的格式的时候,进行相应的转换就可以了
比如一个16位位图,保存的时候选择了单色位图,那么先对图像进行灰度图像转化后保存即可
比如一个16位位图,保存的时候选择了单色位图,那么先对图像进行灰度图像转化后保存即可
#5
关于图像转换,可以搜索一下相关资料,以有很多源码、算法可以参考
#6
使用GetSaveFileName,那么ofn.nFilterIndex可以只是你保存文件的详细类型,俺的程序里面使用.doc或者.rtf,ofn.nFilterIndex应该是1或者2.
#7
只要知道不同后缀名的相应文件格式,保存的时候按那个格式转换一下就行了
#8
MS楼主只是想知道如何使用保存对话框。看看MSDN就可了。新建,保存,打开的重写就和你添加一个菜单的响应一样啊。
#9
问题解决了,重写"新建""打开""保存""另存为"命令 是有点麻烦,好在这部分代码mfc是有公开的,Microsoft Visual Studio 6\VC98\MFC\SRC下的DOCMGR.CPP等等,修改下就是了。