社区
界面
帖子详情
对话框上放一个pic控件来显示一张背景图,这图显示的时候却总把它上面的控件挡住了
warsour
2009-01-22 02:30:33
想用PIC控件在界面上放一个背景图,然后再在这上面添加几个按钮,但显示的时候,那张图总把按钮挡住了,不知道有没什么好办法解决?
...全文
290
12
打赏
收藏
对话框上放一个pic控件来显示一张背景图,这图显示的时候却总把它上面的控件挡住了
想用PIC控件在界面上放一个背景图,然后再在这上面添加几个按钮,但显示的时候,那张图总把按钮挡住了,不知道有没什么好办法解决?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Fireway2008
2009-01-23
打赏
举报
回复
[Quote=引用 8 楼 cnzdgs 的回复:]
给pic控件加上WS_CLIPSIBLINGS风格就可以了:
GetDlgItem(IDC_STATIC1)->ModifyStyle(0, WS_CLIPSIBLINGS);
注意,控件ID不要用IDC_STATIC。
[/Quote]
赞同!因为在初始的时候所有的CStatic 类型的 静态文本框 和 Picture控件都共享同一个IDC_STATIC,直接GetDlgItem指定会出错。
另外,可以试试看把被遮挡的按钮ctrl+x 剪切后,再次
ctrl+v 粘贴上去,应该也能解决被遮挡的问题。
路人乙2019
2009-01-23
打赏
举报
回复
[Quote=引用 1 楼 jameshooo 的回复:]
SetWindowPos(hwndPic, HWND_BOTTOM, ...);
最好的方法是在WM_ERASEBKGND消息中直接绘制图片,而不是使用控件。
[/Quote]也可以得载onerasebackground
showxier
2009-01-23
打赏
举报
回复
[Quote=引用 1 楼 jameshooo 的回复:]
最好的方法是在WM_ERASEBKGND消息中直接绘制图片,而不是使用控件。
[/Quote]
同意.
你看图片在程序中的作用了,如果仅仅只是显示好看,并不要求跟用户有太多交互,那就在背景中绘了.
warsour
2009-01-23
打赏
举报
回复
根本就没响应WM_ERASEBKGND消息,把上面的代码写到OnPaint()里面就可以了,不过这样做似乎更简单GetDlgItem(IDC_STATIC1)->ModifyStyle(0, WS_CLIPSIBLINGS); 谢啦~记得用CTRL+D调整下顺序~
cnzdgs
2009-01-22
打赏
举报
回复
给pic控件加上WS_CLIPSIBLINGS风格就可以了:
GetDlgItem(IDC_STATIC1)->ModifyStyle(0, WS_CLIPSIBLINGS);
注意,控件ID不要用IDC_STATIC。
jackyy_000503
2009-01-22
打赏
举报
回复
响应类的WM_EraseBkgnd 消息,在函数里加入以下代码,把图片画在窗体上当背景,这样就不会挡住按钮了。函数中的 IDB_BITMAP47 是加入资源的图片ID,把这个换成你资源里的图片ID,其它代码不变,就可以了。
BOOL CAddPoi::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CRect rect;
CBitmap bitmap;
BITMAP bmp;
CDC dcCompatible;
bitmap.LoadBitmap(IDB_BITMAP47);
bitmap.GetBitmap(&bmp);
dcCompatible.CreateCompatibleDC(pDC);
CBitmap *pOlBitmap = dcCompatible.SelectObject(&bitmap);
GetWindowRect(&rect);
pDC->SetStretchBltMode(COLORONCOLOR);
pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,
0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
dcCompatible.SelectObject(pOlBitmap);
DeleteDC(dcCompatible.m_hDC);
return TRUE;
//return CDialog::OnEraseBkgnd(pDC);
}
jbhas
2009-01-22
打赏
举报
回复
TAB顺序+透明
fandh
2009-01-22
打赏
举报
回复
改变TAB键的顺序,好像刷新顺序与这个有关,你将他们间的顺序设置先后试试!
warsour
2009-01-22
打赏
举报
回复
BOOL CFlvRipperDlg::OnEraseBkgnd(CDC* pDC)
{
static CBrush hbr;
CRect rc;
GetClientRect(&rc);
if(hbr.m_hObject==NULL){
hbr.CreatePatternBrush(&bmp);
bmp.DeleteObject();
}
pDC->FillRect(&rc,&hbr);
return 1;
}
这样写不知道是不是可以,怎么发现根本就没响应这个消息呢ON_WM_ERASEBKGND()
jameshooo
2009-01-22
打赏
举报
回复
几句话难以说清。还有一种办法可用,就是把按钮都创建为pic控件的子窗口。
warsour
2009-01-22
打赏
举报
回复
直接绘制不是很熟,能否给点代码提示下
jameshooo
2009-01-22
打赏
举报
回复
SetWindowPos(hwndPic, HWND_BOTTOM, ...);
最好的方法是在WM_ERASEBKGND消息中直接绘制图片,而不是使用控件。
SmartBeijing Day06
,这个是我们这样
一个
回答对吧,当然还有
一个
elseif,这是我们发音的
一个
功能,当然我们发音还有
一个
功能,就说我们在聊天的时候,或者说话的时候,它会在手机屏幕中间弹出
一个
对话框
,
对话框
中有个声波,我说句话它就刷刷刷的转,大家都用过这种语音识别的软件吧,你随便语音录入,它是不是最后说话完了之后,它就转几圈,然后把你说话的结果就传上去了吧,有这么
一个
UI效果,那我们也可以加这样
一个
语音的UI效果,那这个UI效果其实科大讯飞已经帮我们搞好了,在文档中搜索“语音输入UI”,找到它,那这个语音输入UI怎么去弄呢?
Qt 菜鸟经验
总
结18则
Qt version is 3.2.3 企业版 1.//可以直接在
对话框
上创建按钮等
控件
,看来布局类或者布局类物体只是 //用来方便我们放置
控件
的。 2.关于调用 moc 程序处理 signal and slot机制,有时候 qmake 生成的 Makefile 文件并不调用moc来预处理,因此这个时候可以先删除 Makefile,然后再生成。 错误信息大致为: 3.允许这样的语句:Layout->setGeometry( QRect( 10,10,100,50 ) ); QHBoxLayout等布局对象(
QT小技巧
一般我们在编程是使用继承Qwidget类的类作为主组件,这当然未可厚非.但在制作典型的多文档和 单文档程序时我们有更好的选择— QmainWindow类,它可以方便的管理其中的菜单工具条主窗口和状态条等,在窗体几何属性发生变化时也能完美的实现内部组件缩放,这比用传统的几何 布局类来管理要方便得多,而且不用写什么代码.关于它的具体细节请查阅QT的帮组文档,这里就不赘述了.QHBoxLayout等布局对象(but not widget )里的 Widget 的排列,是按其加入的先后顺序而定的。
Qt小技巧
1、如果在窗体关闭前自行判断是否可关闭 答:重新实现这个窗体的 closeEvent()函数,加入判断操作 void MainWindow::closeEvent(QCloseEvent *event) { if (maybeSave()) { writeSettings(); event->accept(); } else { event->i
学习笔记之Android
总
结
话不多说,先罗列一些知识点: 基础知识点:Fragment、Activity、Service、广播、Binder、WebView安全漏洞 异步消息处理机制:Handler、IntentService、AsyncTask、HandlerThread View相关:View渲染和绘制、事件分发、ListView 构建:编译打包、Gradle、Proguard混淆、渠道包、Git 开源框架源码...
界面
15,980
社区成员
115,867
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章