怎么样把对话框的背景变成图片???

lanfanghelanfanghe 2003-09-14 10:08:39
用OnCtlColor(..)吗(是硬盘上的美眉图片,应该怎么做呀),具体是怎么做的呀,请帮帮忙呀???
...全文
141 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
HongHuer 2003-09-14
  • 打赏
  • 举报
回复
bool GetModul_HigherUp(char * buffer)
{
//
//得到当前程序的路径,变换为文件路径
//
if(!GetModuleFileName(NULL, buffer, 128))
{
return false;
}

BYTE c = '\\';
char *p;
char *p1 = buffer;

while(*p1 != ' ')
{
p = strchr(p1, c);
if(p == 0)
{
break;
}
p++;
p1 = p;
}
strcpy(p1, "");

return true;
}
HongHuer 2003-09-14
  • 打赏
  • 举报
回复

//.h
class CDialog_1:public CDialog
{
public:
void Draw_BK_Bitmap(CDC * pDC);
};

//.cpp
void CDialog_1::OnPaint()
{
CPaintDC dc(this);

Draw_BK_Bitmap(&dc);
}

//函数功能 : 画 背景 bitmap
//函数参数 :
//函数返回 :
//函数说明 :
void CDialog_1::Draw_BK_Bitmap(CDC * pDC)
{
BITMAP btmp;
HBITMAP hBitmap;
CBitmap NewBitmap;
CBitmap * pOldBitmap;


//
//得到位图路径
//
char FilePath[128];
if(!::GetModul_HigherUp(FilePath))
{
return ;
}
::strcat(FilePath, "Btmps\\Dialog_1_bk.bmp");


hBitmap = (HBITMAP)::LoadImage(NULL,
FilePath,
IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
ASSERT(hBitmap);

NewBitmap.Attach(hBitmap);
NewBitmap.GetBitmap(&btmp);

CDC MemDC;

MemDC.CreateCompatibleDC(pDC);
pOldBitmap = MemDC.SelectObject(&NewBitmap);

//
//得到屏幕的宽度 高度
//
int ScreenWidth = ::GetSystemMetrics(SM_CXSCREEN);
int ScreenHeight = ::GetSystemMetrics(SM_CYSCREEN);
int x;
int y;

for(x=0; x<=ScreenWidth; x+=btmp.bmWidth)
{
for(y=0; y<=ScreenHeight; y+=btmp.bmHeight)
{
pDC->BitBlt(x, y, btmp.bmWidth, btmp.bmHeight,
&MemDC, 0, 0, SRCCOPY);
}
}

MemDC.SelectObject(pOldBitmap);
::DeleteObject(NewBitmap.m_hObject);
}
xghost 2003-09-14
  • 打赏
  • 举报
回复
CDC dcImage;
if(!dcImage.CreateCompatibleDC(pDC))
retrun;
BITMAP bm;
m_btmap.GetBitmap(&m_bitmap);
pDC->BitBlt(0,0,bm.bmWidth,bm.bmHeight,&dcImage,0,0,SRCCOPY);
FreeSeagull 2003-09-14
  • 打赏
  • 举报
回复
响应WM_ERASEBKGND消息,在处理函数里边把图片画上就可以了。
SlayerCarrier 2003-09-14
  • 打赏
  • 举报
回复
唉,BitBlt吧!
SeainBlue 2003-09-14
  • 打赏
  • 举报
回复
简单一点就是这样
1.C*Dlg.h定义CBrush对象
CBrush myBkImage;

2.C*Dlg.cpp , 在OnInitialUpdate()中
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP);
myBkImage.CreatePatternBrush(&bmp);
bmp.DeleteObject();

在OnCtlColor()中添加
if (pWnd == this)
{
return myBkImage;
}
mct1025 2003-09-14
  • 打赏
  • 举报
回复
Adding a background image to any window

http://www.codeproject.com/bitmap/picturewindow.asp?target=dialog
SeainBlue 2003-09-14
  • 打赏
  • 举报
回复
http://www.codeguru.com/dialog/BmpDlg.shtml
ywybetter 2003-09-14
  • 打赏
  • 举报
回复
up
vcforever 2003-09-14
  • 打赏
  • 举报
回复
用你的图片创建一个位图画刷,用你的位图画刷来填充
对话框的客户区!
chen_pin 2003-09-14
  • 打赏
  • 举报
回复
Up it
PPT制作培训教程 目标:教您如何将已有教案转化为演示文稿,并且详细讲述了幻灯片的制作方法和一 些制作技巧,您可以充分发挥POWERPOINT的特点,把课讲得更生动、更活泼、更明白。   实例:下面给出了利用教案制作好的一个演示文稿。   难点分析:   1) 添加幻灯片内容   我们已经有了现成的教案,很多内容是要在课堂上讲解的。如果您所在学校有条件 进行幻灯片教学,就可以利用已做好的教案,迅速做好每节课所要演示的幻灯片。   如何把已有的教案(Word文件)移植到PowerPoint中呢?   方法一:在PowerPoint中插入WORD文件   (1) 在PowerPoint中,新建一个空演示文稿; 单击"插入"菜单,选择"幻灯片(从大纲)命令"。   找到教案文档所在位置,选择此文档,单击"插入"按钮,WORD文件就插入到演示文 稿中了。   (2) 在大纲视图下对插入进来的文档进行编辑,使每页幻灯片上的文字数量比较均衡,对不 必要的文字进行删节,并进行文字级别的设定。   (3) 在工具栏上单击右键,选择"大纲"。   窗口中出现"大纲"工具栏,有了它的帮助,我们很快就可以将插入的文档调整好。   (4) 幻灯片的文字部分做好之后,就可以插入一些要用到的图形、图表;内容齐全后,就加 些必要的跳转和超级链接;然后再给幻灯片套用一个模板,或是自己加背景、设置配色 方案,使幻灯片更美观;最后再考虑加些幻灯片切换、自定义动画、声音等。   方法二:利用复制功能建立演示文稿   我们发现,利用插入文件的方法来建立演示文稿,调整的工作量还是很大,如果这 一节课的演示文稿内容不是特别多,可以利用不同文档间的复制——粘贴功能来完成演示 文稿的制作。   具体方法为:打开教案所在的WORD文档,启动PowerPoint,并新建一个空演示文稿 ;切换到WORD文档中,选中第一张幻灯片上所要演示的内容,然后按下CTRL+C键进行复 制,再切换到PowerPoint中,在第一张幻灯片中按下CTRL+V键进行粘贴;然后再依次复 制粘贴第二页、第三页...;对图形可以单复制,并在幻灯片中进行位置和大小的调整; 图表、公式等也依此法复制到演示文稿中;最后对建好的演示文稿进行总体调整,平衡 文字量和文字的大小。 2) 幻灯片的美化(上)   上面我们建好的幻灯片都是文字和图形,整个幻灯片都是白底黑字的,您可以将其 美化一下。   最简单的方法是:   在幻灯片的空白处单击鼠标右键,选择"应用设计模板"命令。   在弹出的对话框中,选取一种模板,比如blueprint模板,单击"应用"按钮。   幻灯片就变得漂亮多了,不但幻灯片有了背景,而且标题文字和正文文字的大小、 颜色、字体等也设置好了。   您还可以给每张幻灯片分别添加一个背景,可以是颜色、图案、纹理,也可以是一 幅图片。   给幻灯片添加背景的方法为:   单击"格式"菜单中的"背景"命令,打开"背景"对话框。   单击"背景填充"下拉箭头,在弹出的菜单中有颜色列表和"其它颜色"、"填充效果" 两个命令。选择一种颜色,单击"应用"按钮。   幻灯片的背景变成这种颜色了。 3) 幻灯片的美化(下)    如果要把幻灯片的背景换成图片,就在幻灯片的空白处,单击右键,选择"背景", 选择"填充效果"命令。   在弹出的对话框中选取"图片"选项卡,单击"选择图片"按钮。   您可以在图片对话框中选择好看的图片,然后单击"插入"按钮,图片的预览效果出 来了。   最后选择"确定"。   选择"全部应用"。   所选的图片就成为背景了。 4) 幻灯片的切换   在幻灯片放映过程中,为增加幻灯片放映的活泼性和生动性,可以为幻灯片添加切 换效果。通俗地讲,就是在幻灯片的放映过程中,放完这一页后,这一页怎么消失,下 一页怎么出来。   加入幻灯片切换的方法为:   (1) 在幻灯片浏览视图中,选中要添加切换效果的幻灯片,然后单击"幻灯片放映"菜单中的 "幻灯片切换"命令。弹出"幻灯片切换"对话框,里面有效果、换页方式、声音、切换速 度及应用范围等选项。   (2) 在"效果"选项组中单击下拉箭头,打开下拉列表框,这里面列出了四十多种切换效果, 选取一种,上面的小图就把效果表示出来了。再选一种,又换了个样子。      (3) 我们可以设置"切换速度",选择"中速"。   (4) 接下来设置"换页方式",如果不进行设置,缺省状态为"单击鼠标换页",也就是在幻灯 片放映过程中,点一下鼠标,幻灯片就换到下一页,同时显示换页效果;我们也可以取 消这种换页方式,选取换页方式中的间隔,然后在下面的文本框中输入2,那么幻灯片放 映时,隔2秒钟它就会自动切换到下一页。   (5) 我们还可以设置切换声音。单击"应用"按钮,就
如何制作启动光盘? Multimedia Builder教程 2008年10月08日 星期三 下午 06:14 1. 创建文件夹。我们先在电脑上新建一个文件夹并命名为“工具盘”。然后进入该文件夹,在该文件夹中在建立一些相应的子文件夹,如系统工具、多媒体工具、网络工具等。 2. 搜集需要刻录的文件。把要刻录到光盘上的软件、图片、MP3歌曲等复制到相应的文件夹中。 3. 收集ICO图标文件。制作光盘时,如果要给自己的光盘添加一个图标,当光盘放入光驱中,光驱的盘符会变成自己的图标,就更有个性了!我们可以到网上或到其他程序中找一个附件名为ICO的图标文件,然后将其保存在“工具”文件夹的根目录下。到此搜集素材的工作结束,下面正式开始。 个性光盘自启动 制作光盘的自启动文件,我们可以借助软件Multimedia Builder来完成,它可以帮你制作互动式的多媒体程序和光盘的Autorun自启动画面。 第一步,创建启动文件 首先启动Multimedia Builder(以下简称MMB),在主界面的工具栏中选择“模板”按钮,随后弹出一个模板创建向导对话框(图1),在此点选“在磁盘上的模板”,随后选择模板框中CD Browser,单击“继续”按钮,在出现的“项目向导”中依次输入:项目名称、E-mail等信息,随后单击“完成”即可返回主界面。在主界面的操作区中已经生成一个封面设计界面(图2),到此一个简单的电子封面已经创建做好了! 图1 先把模板创建到硬盘上 第二步,编辑页面属性 图2 选择一种默认的启动界面 双击主界面下面“页面”框中的Page1图标,弹出“页面属性”对话框(图3)。设置时首先去掉背景项中的“来自母版页面”前面的勾,并单击“图像”框中的文件夹图标,选择一个漂亮图片来做电子封面的背景图片。我们也可以通过颜色下拉菜单选择一种颜色作为该封面的背景背景选好后单击下面的“页面转换”下拉菜单,选择一个转场效果,并将转场延迟时间设置为默认的“500”即可。 图3 设置首页面的属性 如果你想在光盘启动时有背景音乐伴随,那么可以在“背景音乐”项中选择一个合适的音乐文件,程序支持WAV、MP3两种格式。要注意的是,输入后的MP3文件是绝对路径,如“C:My Documentsjda.mp3”,必须手动将其更改为“〈SrcDir〉jda.mp3”这种相对路径格式(“〈SrcDir〉”变量一定要有)。这一步,我们也可以在后面批量更改路径时对其进行更改。 图4 文字属性设置很重要 接下来我们就要制作电子封面中的相应内容和按钮了。首先在操作区中将需要链接的按钮拖到合适的位置,并且用复制功能复制多个同样的按钮,摆放整齐。随后双击第一个按钮条上的文字,如“Install”,弹出“文本属性”对话框(图4),在上面的文本框中改写按钮文字,如“系统工具”,并勾选下面的“激活动作”复选框。随后,单击“外部命令和页面动作”按钮。弹出设置对话框,在“鼠标点击时”一项中选择“跳至某页(标签)”命令(图5),在“路径”项下选择跳至的页面(如Page2)。以后我们在该界面用鼠标单击此按钮上的文字时,即可进入此界面。按照同样的方法对页面中的其他按钮进行设置,设置后的效果如图6。 图5 跳到指定页 图6 首页面的雏形已经完成 图7 注意给出的路径实例 用鼠标单击Page2,进入page2页面。该页面的按钮条和上一页有所不同,此页的按钮条的作用不是跳转到其他页面,而是当我们单击某一按钮时就会自动运行一些程序、或打开某一文件夹。设置这样的按钮条时,首先双击此按钮条上的文字,在弹出的“文本属性”对话框中输入文字后勾选下面的“激活动作”复选框,并单击“外部命令和页面动作”按钮。弹出设置对话框,在“鼠标点击时”项中选择“运行程序”命令(图7),在“路径”项下浏览按钮选择前面搜集好的程序,并按照上面的方法将其改为相对路径。以后单击该按钮条上的文件即可安装此程序。按照此方法对其他页面中的按钮进行设置,设置后效果如图8。 图8 点击按钮即可直接安装软件 第四步,批量修改路径 刚才我们对每个按钮条都进行了动作设置,而且给每个按钮都添加了一个命令。但是我们输入的路径都是本地路径,制作成光盘后拿到其他电脑中就无法使用了,所以输入后我们还要将其改为相对路径,按照上面的方法手工一一进行修改比较麻烦。程序提供了一个批量修改路径功能。修改路径时单击“项目”菜单中的“路径取代”命令,随后弹出一个“路径取代”对话框,在此用鼠标单击需要修改的文件,随后在下面的“搜索匹配字串”文本框便会出现该程序所在的文件夹路径(如C:My DocumentsDownload)。将下面的“替换为”变为“〈SrcDir〉”变量,单击右侧的“全部替换”按钮即可将其进行替换。 值得一提的是,在使用批量修改路径功能时,我们应在搜集这些外部文件时就将其集中保存到同一路径下。这样在批量更改路径时才能快速地修改。 第五步,添加动画和按钮 以上各个按钮条制作好后,我们还要在该封面中添加一些动画效果,使其更加美观。添加时单击右侧工具条中的“动画Gif”按钮,选择一个需要添加的动画文件即可。此外,我们还可以单击“星光”、“文本”、“位图”、“视频”等按钮来为该电子封面添加一些特殊效果。 第六步,测试和输出文件 程序提供了一个电子封面“检测”功能,单击工具栏中的“检测性编译”按钮,可以对刚刚做好的电子封面进行检测,可以检查出各个按钮条的路径是否正确。 检测无误后,我们就要对这些设置进行打包输出,在MMB的工具栏中单击“编译”按钮,弹出一个“检测项目及编译输出文件”对话框,在发表项中选择好输出程序的保存路径,勾选autorun.inf文件,有了这个文件以后该光盘即可自动运行了。单击“图标”项中的256色图标按钮,选中我们事先准备好的ICO图标文件,随后单击“确定”,程序会自动生成autorun.exe和autorun.inf两个文件。至此,该电子封面制作成功(图9)。 图9 最后的成果

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧