说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何用位图把整个对话框填满?

编辑:说三道四文库 发布时间:2017-07-28 07:13
HTML文档下载 WORD文档下载 PDF文档下载
要象超级解霸一样,同时还能填满如编辑框,按钮等, 越早解决,越详细分越高,可以突破系统限制,最多800分。
再次感谢!!!
获取对话框尺寸GetClientRect(&rect)
用rect画位图StretchBlt()
能不能详细点?如果只是画图,则不能给分,早已可用selectobject()和bitblt()画图,请保证能画上编辑框,静态框等控件上!!
将编辑框、静态框等置成透明状态不就可以了吗?
9494
nod
我做了一个程序,象你所说的那样位图充满了整个对话框,还能显示进度条,我的做法很简单,就是画一个图,导入,放到对话框,然后将对话框标题栏去掉,拉动对话框里边的蓝线与外面平齐,再使对话框和位图一样大小,在程序里边调用SetWindowPos设置对话框大小和位图大小一致,保证进度条位置正确。(不调用SetWindowPos函数,在使用大字体时对话框和位图大小会不一致,进度条也会跑到不知什么地方去。)
雪鹰:试过了,将静态框置成透明,但静态框背景不改变,仍然是灰色,希望能成超级解霸一样,静态框背景也变成位图的背景
我试过了,我的这个程序里边进度条的背景就是位图,我在资源编辑器里边也没有任何特殊设置:试看我的代码:
BOOL CALLBACK SplashProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
HWND ProgHwnd;
int  cx,cy;
switch (uMsg)
{
case WM_INITDIALOG:
cx = GetSystemMetrics(SM_CXSCREEN);
cy = GetSystemMetrics(SM_CYSCREEN);
cx = (cx-300)/2;
cy = (cy-230)/2;
hProgress = GetDlgItem(hDlg,IDC_PROGRESS1);
SendMessage(hProgress,PBM_SETRANGE,0L,MAKELONG(0,470));
SendMessage(hProgress,PBM_SETSTEP,1L,0L);
         SendDlgItemMessage(hDlg,IDC_LOGO,STM_SETIMAGE,IMAGE_BITMAP,
            (LPARAM)LoadImage(GetModuleHandle(NULL),MAKEINTRESOURCE(IDB_BITMAP3),IMAGE_BITMAP,
                              0,0,LR_LOADTRANSPARENT | LR_LOADMAP3DCOLORS));
SetWindowPos(hDlg,HWND_TOP,cx,cy,300,230,SWP_SHOWWINDOW);
ProgHwnd = GetDlgItem(hDlg,IDC_PROGRESS1);
SetWindowPos(ProgHwnd,HWND_TOP,71,168,161,20,SWP_SHOWWINDOW);
break;

case WM_DESTROY:
break;


case WM_COMMAND:
switch (GET_WM_COMMAND_ID(wParam, lParam))
{
case IDCANCEL:
break;

case IDABORT:
ShowWindow(hDlg, SW_HIDE);
break;

}
break;

default:
return(FALSE);
}

return(TRUE);
}
需要自己重新写按钮等等控件。
我想如果可以用一种刷子直接以位图刷一下对话框,同时框内所有控件都刷在里面,不就可以了吗?
softwarehe:你的方法我晚上试,明天再与你联系
BOOL CDlgBmp::OnInitDialog() 
{
m_nType = iType;

CRect rectClient;
CBitmap* pBmpOld;

CClientDC dc(GetDesktopWindow());
VERIFY(m_dcMem.CreateCompatibleDC(&dc));
VERIFY(m_brush=(HBRUSH)GetStockObject(HOLLOW_BRUSH));
VERIFY(m_bmpBackground.LoadBitmap(bmpId));
m_bmpBackground.GetObject(sizeof(BITMAP),&m_bmInfo);
VERIFY(pBmpOld=m_dcMem.SelectObject(&m_bmpBackground));
VERIFY(m_hBmpOld=(HBITMAP)pBmpOld->GetSafeHandle());
m_HollowBrush.CreateStockObject(HOLLOW_BRUSH);
m_bBmpLoad = true;
}

BOOL CDlgBmp::OnEraseBkgnd(CDC* pDC) 
{
if (!m_bBmpLoad)
return CDialog::OnEraseBkgnd(pDC);

CRect rect;
int x = 0, y = 0;
GetClientRect(&rect);
pDC->StretchBlt(rect.left,rect.top,rect.Width(),rect.Height(),
&m_dcMem,0,0,m_bmInfo.bmWidth-1,m_bmInfo.bmHeight-1,SRCCOPY);
    return TRUE;
}
笨驴:如果有人认为你是笨驴,那么他才是真正的笨驴。能不能解释一下m_dcMem,m_bmpBackground,m_HollowBrush,m_hBmpOld数据类型和意义??分数可以再加
其實你的問題的關鍵在于對話框上所有的控件的背景都要是透明的,我以前好象看到過用vc做透明控件的文章,我幫你找找看
softwarehe:
你的方法我试了,应该可以让进度条背景改变,但我要的是对话框和框内的所有控件变化,这种方法只能对所有控件一一处理,不胜其烦,也不能保证背景是完整的一张图;
另外题外话:如何在对话框里获得对话框本身的句柄??

笨驴:使用了你的代码,不行。 考虑以下因素,对话框没有OnEraseBkgnd事件;代码还是不能把位图刷刷到整个对话框上(包括其他控件);如果你是可以的,请给我做一个简单的PROJECT发给我,可编译执行的。
谁能解决???梁照新在吗?
我用MFC时,用CPaintDC类的dc,用BitBlt刷一下就行了,但用CDC,CClientDC就会把控件给盖掉,不知CPaintDC对应的dc,在API中怎么得到,应该很容易吧。
用CPaintDC刷一下就行了?什么意思,是控件背景变成位图吗?用CDC,CCliendDC就会把控件盖掉?控件被位图盖掉不能显示了??请详细说明
CPaintDC 在MFC中很容易得到,CPaintDC dc(this); 
我会的就是CPaintDC ,但是静态框等控件背景仍然是灰色
高手快请出招!!!!!!!!!!!!!!!!!!!!
//回答
CBitmap m_bmpBackground;
CBrush m_HollowBrush;
CDC m_dcMem;
HBITMAP m_hBmpOld;
HBRUSH m_brush;
BITMAP m_bmInfo;
BOOL m_bBmpLoad;
看变量名就知道什么意思了
我给你一个例子吧,匆匆忙忙,不太详细
谢谢,PLEASE MAIL TO wwtree@sina.com
发了
笨驴: 在修正了一些BUG后,可以运行了,但位图只能选择很小的,不然loadbitmap时会失败;能告诉我答案吗?你已经获得了200分,如果能告诉我上面的答案,可以在加个贴子送分
另外,我的理解是它的原理是在对话框启动时画图,(用stretchblt()或bitblt()),再在OnPaint()中发消息让所有控件变透明,这种理解对吗?
欢迎提供别的思路
KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK
问题已解决,我以前的理解有误,正确应该是用stretchblt()或bitblt())绘图,再在Onctlcolor()中发消息让所有控件变透明
Cue:秒杀HealthKit,打造自己的家庭医生 新iPhone要来:4.7就够了么?我们还有更大的 Docker迈入云(DockerHub)+端(Docker引擎)时代 《近匠》壹枱智能钢琴:改造音乐行业的新“玩”家 圣何塞Hadoop Summit 2014看点 唯快不破!90后大学生9天完成近670页的Swift语言文档翻译 一周消息树:Java、.NET、Web技术应用特点 苹果生态格局:软硬件之后,iLifestyle才是王道 小米互娱总经理尚进:独立游戏当为发烧而生 哪些编程语言、框架/平台最受企业青睐? 高德LBS应用大赛:百万大奖、千万基金等你来拿! Gartner:有数据有真相 从浪潮看服务器市场走势 PhoneGap 3.5.0发布,不再支持iOS 5和ARM64 “中美青年创客大赛”之“创客·教育论坛” 以创客教育支持创新人才培养 授之以渔,谷歌发布开源秘密武器Kubernetes 炫耀分数已经out!ShareSDK发布游戏内视频录制SDK Android开发者必知的5个开源库 UCloud完成B轮融资5000万美元 Git远程操作详解 《近匠》iMAG:移动应用快速跨平台开发工具 Facebook斥资30亿美元购Snapchat遭拒后,推Slingshot 全球开发者报告:程序媛崛起,企业应用更赚钱! 土豪经济 E人E本发布首款4G安全手机 内忧外患:Android版FuelBand应用来得太迟? MongoDB 2.6.2 发布,大大改进查询功能 清华毕军&华为马云:SDN是学术和产业都看好的领域 向三星和苹果发难:亚马逊FirePhone 3D手机强势来袭 支付宝移动端与NFC芯片商、手机商合作 推出近场支付产品 Go 1.3正式发布,改进正则表达式! API设计如龙生九子,Tunneling、Hypermedia等更受开发者青睐 NFV+SDN,博科打造开放式网络平台 三层MIS中的中间件怎么用COM或EJB来实现. 请问哪里的个人主页控件支持JSP? 再次请教一个有关DataGrid不能显示而令人头晕的问题(在线等待)! 做过考勤管理的请进………… 在ASP.NET中怎样实现语句加入引用? 请问下面这个问题应该怎么解决最好?关于处理网页中的数据的 使用VB6自带的Sample中自动化示例应用程序时的一个问题 那位高手知道怎样实现曲线分析图... 一个简单SESSION 问题,请解决。在线等,没分了不好意思. 为什么在asp中使用ADODb的Connection对象的方法时不能使用事务处理 ====寂寞啊!谁帮介绍一个女孩啊(15-18)岁的!!万分感谢!==== 高分请教大虾,关于搜索的问题?。。。。 100分请教一个简单的问题?? runtime在JAVA中解释应该是什么意思? SCO上的ORACLE7建库?SOS 大家来看看,超级Bug?用DBExpress连接MSSQL,执行存储不能返回值,谁能解决,200分 高分请教,谢谢了/。。。。 我在程序中使用了MSXML,可是在干净的win98下无法运行,请问需要安装什么? 救急: SQL server的数据恢复 关于分辨率的问题。 在vb.net中能做dll吗?请大家可参与 下面的函数怎样声明? 能直接用alter语句修改某个字段的类型和长度吗? 如何做pci 插卡? 关于datalist绑定问题 我的前途???欢迎大家发表意见! 急求 如何测试asp ■■■■为防止下一场水园恶战,水源马甲联盟再次公开马甲id 密码■■■■ 自定义对象的实例怎么在ViewState里保存 把資料漚出成txt,doc,xls格式的文件,在漚出過程中,但是漚出成xls(Office2000)正常,officexp就出現亂碼? citrix数据引擎是什么? 刚刚我和她分手了 在數據窗口中怎樣打印jpg文件 为什么我的pws安装时提示需要winsock32?? 如何在grid表格或临时表里实现累加 请教一个四舍五入的问题? 各位老鳥,請問怎樣用ADO控件連接到一個Excel文件 oracle8i存储过程怎么写? 在线等待-----安装问题!!急急急急 我的拨号出了什么问题???急救!! 交換機連到交換機(兩個都是d-link的),如何連? 在php中如何将图片上传到服务器的MY SQL数据库中。紧急 关于视图位置疑问 缩进 急急!谢谢! 100分!在线等!急急急急急急急急急急急急急急急急急! DLL hell 关于javascript的错误,运行到该段程序,老出错,帮我看看。 别的工具调用EJB问题。 如何识别对象?? 宁波上半年生产总量全省第二 下半年抓杭州近百万亩农作物受旱灾 抗旱重在保金华昨天火箭人工增雨成功 气温骤降1义乌宗泽北路最后一个拆迁户终拆除 9浙江将启用最严格制度治水 省领导或亲杭州西湖区小学新生比去年增加1200金华昨召开深化作风建设大会 通报处理浙江7月份全省降水量比常年同期偏少七杭州连日大风吹乱荷塘 鲜藕减产几成定浙江绍兴超40万亩苗木因高温受损浙江高考第三批分数线公布 文科271台风飞燕致浙江近两天凉爽 下周仍回4杭州召开区县(市)委书记工作汇报会杭州西湖区将建17个学校地下停车场杭州出售赠与和抵押房产只认房产证上的本周继续晴热高温 未来10天可能有台昨日杭城一天清凉 今天高温晴热卷土重淳安被列为生态“单列县” 不再考核工浙江管钱能力全国第七杭州今年河道治污完成近半 五条河道将杭州天城路将拓宽为双向8车道 往东将新晋老板Pharrell首度主导RA这180万人要重新找工作!(看看有你“兔子绅士”时髦归来 JOYRICH平安银行信用卡办哪张好?持卡人享餐饮3.15:翼虎7天断腿,在华之路该如03.03收评:十字星或藏有海量秘密让明星们跟它去旅行,“无二之旅”凭什招行消费易如何还款2016,3D打印的“钱途”和机遇全国人大代表黄细花:生育假延至180单身狗们看完可能会不开心……斯帅上任恒大首败,保守的他会变革吗?有的人撩妹就是那么厉害,那么突如其来一线楼市场外配资助长投机潮 专家建议XB老总:玩家应放下平台之见共同欣赏A股绝地大反弹背后:58家公司股东减微软愿做中间商,不打算开发Xbox 新三板日报:做市指数跌0.25%报1甘世振:投资常见三种误区,你是否有察沪指收复2850点 李大霄:婴儿底已股价曾两个月涨200% “潜力股”浪
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘