对话框和Button背景图片的两个问题:

oneofcsdn 2006-10-16 09:47:05
1、如何给对话框设置超过256色的背景图片。我使用了
void CTestDlg::OnPaint()
{
...

CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAPBACKGROUND);
BITMAP bitMap;
bmpBackground.GetBitmap(&bitMap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height

(),&dcMem,0,0,bitMap.bmWidth,bitMap.bmHeight,SRCCOPY);

}
可以出现背景图片,但是被变成了256色,怎么处理?

2、如何给button设置图片。我在CTestDlg中加入了CBitmapButton m_StopBtn;
并且button设置了Bitmap和Owner draw属性,caption为DB_BITMAPONDOWN。
BOOL CTestDlg::OnInitDialog()
{
...
m_StopBtn.LoadBitmaps(IDB_BITMAPONDOWN, IDB_BITMAPONDOWN, IDB_BITMAPONDOWN,

IDB_BITMAPONDOWN);
}
但是没有显示图片,为什么?
谢谢!
...全文
235 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
oneofcsdn 2006-10-25
  • 打赏
  • 举报
回复
第一个问题,在于我图片适应对话框的大小,导致图片颜色不对,我以为是颜色丢失。
谢谢!
youyoufish 2006-10-17
  • 打赏
  • 举报
回复
我说下第2个:
做2幅图片,一个用来表示按钮 凸起状态,一个用来表示按钮 凹陷状态.

若你的按钮ID为IDC_YOURBUTTON,名称为DB_BITMAPONDOWN,则将以上2幅图导入资源时的名称不要用ID号,用"DB_BITMAPONDOWNU"和"DB_BITMAPONDOWND" (双引号是需要的)这后面的U和D代表UP和DOWN状态(F和X是focus和disable).

之后你就可以使用了:m_StopBtn.AutoLoad(IDC_YOURBUTTON,this);

按钮属性Owner draw就ok
oneofcsdn 2006-10-16
  • 打赏
  • 举报
回复
各位老大帮忙啊,要不进行不下去了,谢了。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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