社区
界面
帖子详情
对话框上放一个pic控件来显示一张背景图,这图显示的时候却总把它上面的控件挡住了
warsour
2009-01-22 02:30:33
想用PIC控件在界面上放一个背景图,然后再在这上面添加几个按钮,但显示的时候,那张图总把按钮挡住了,不知道有没什么好办法解决?
...全文
285
12
打赏
收藏
对话框上放一个pic控件来显示一张背景图,这图显示的时候却总把它上面的控件挡住了
想用PIC控件在界面上放一个背景图,然后再在这上面添加几个按钮,但显示的时候,那张图总把按钮挡住了,不知道有没什么好办法解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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,这是我们发音的
一个
功能,当然我们发音还有
一个
功能,就说我们在聊天的时候,或者说话的时候,它会在手机屏幕中间弹出
一个
对话框
,
对话框
中有个声波,我说句话它...
Qt 菜鸟经验
总
结18则
关于调用 moc 程序处理 signal and slot机制,有时候 qmake 生成的 Makefile 文件并不调用moc来预处理,因此这个时候可以先删除 Makefile,然后再生成。 错误信息大致为: 3.允许这样的语句:Layout->setGeometry( ...
Qt小技巧
答:重新实现这个窗体的 closeEvent()函数,加入判断操作 void MainWindow::closeEvent(QCloseEvent *event) { if (maybeSave()) { writeSettings(); event->accept(); } else { event->i
QT小技巧
但在制作典型的多文档和 单文档程序时我们有更好的选择— QmainWindow类,它可以方便的管理其中的菜单工具条主窗口和状态条等,在窗体几何属性发生变化时也能完美的实现内部组件缩放,这比用传统的几何 布局类来管理要...
pyside6详细笔记
对象树与所有状态概述QObjects 的构造/销毁顺序继承关系图Qt 命名空间模块简介QWidget窗口的创建在PyQt中使用qrc/rcc资源系统Qt 资源系统简介qrc 文件简介与示例使用前缀进行分组为资源创建别名使用rcc 编译资源rcc ...
界面
15,980
社区成员
115,900
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章