为vc单应用程序的对话框添加背景图片后按钮被覆盖怎么解决

2025-02-25 12:29:59
推荐回答(5个)
回答1:

先把图片放上再弄按钮,或者是把图片画到窗口上而不是通过picture控件

回答2:

在编辑界面按下ctrl+D键,就会出现所有控件的Tab键顺序,按照自己想要的顺序依次点击控件的数字标识,就可以重新安排控件的TAB键顺序。

希望能帮到你,请采纳为答案!

回答3:

vs2010下右键按钮选择属性-Vertical Ali-选择top

回答4:

对话框的属性调节成透明就行了

回答5:

通过用控件加入图片作为背景的方式容易导致图片覆盖控件,导致显示的时候看不到控件,用这样的方法可以放心的设置控件的位置,不会应为图片控件的原因在设计和运行的时候制造麻烦,还会自适应窗口大小。

首先需要响应WM_ERASEBKGND消息,在class wizard中的class info标签下将对话框的message filter改成windows后,可在windows消息中看到WM_ERASEBKGND消息。
在消息中添加如下代码:
BOOL CDlgLogin::OnEraseBkgnd(CDC* pDC)
{
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);

BITMAP bmp;
bitmap.GetBitmap(&bmp);

CDC dcCompatible;
dcCompatible.CreateCompatibleDC(pDC);

dcCompatible.SelectObject(&bitmap);

CRect rect;
//GetClientRect(&rect);
GetWindowRect(&rect);

pDC-> StretchBlt(0,0,rect.Width(),rect.Height(),&dcCompatible,
0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
return TRUE;
return CDialog::OnEraseBkgnd(pDC);
}