4个回答
展开全部
把你的图包含到程序的“Bitmap资源”里,提示说该资源使用了大于256色的调色板,在VC里无法编辑等等,点确定就可以
具体步骤如下:
背景图像加载很简单,你只需要做以下几步即可(假设你的登陆界面对话框类名叫“CLoginDlg”):
(1)菜单“Insert(插入)”->"Resource(资源)",选择Bitmap,然后点“Import...(引入)”,选择你的背景图像(最好为bmp格式的,其它格式好像不行),然后假设该资源ID为“IDB_BITMAP1”;(系统默认就是这个ID)
(2)在LoginDlg.h下声明一个CBitmap m_BKbitmap;
(3)在LoginDlg.cpp的构造函数中:m_BKbitmap.LoadBitmap(IDB_BITMAP1);
如果有错的话,将上面第三条注释掉,再看看。
定位到 void CXXXDlg::OnPaint(),在if()...else()中的else()下添加如下代码
else
{
//CDialog::OnPaint();//要禁止这个调用
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1);
//IDB_BITMAP1是你自己的图对应的ID
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);
}
具体步骤如下:
背景图像加载很简单,你只需要做以下几步即可(假设你的登陆界面对话框类名叫“CLoginDlg”):
(1)菜单“Insert(插入)”->"Resource(资源)",选择Bitmap,然后点“Import...(引入)”,选择你的背景图像(最好为bmp格式的,其它格式好像不行),然后假设该资源ID为“IDB_BITMAP1”;(系统默认就是这个ID)
(2)在LoginDlg.h下声明一个CBitmap m_BKbitmap;
(3)在LoginDlg.cpp的构造函数中:m_BKbitmap.LoadBitmap(IDB_BITMAP1);
如果有错的话,将上面第三条注释掉,再看看。
定位到 void CXXXDlg::OnPaint(),在if()...else()中的else()下添加如下代码
else
{
//CDialog::OnPaint();//要禁止这个调用
CPaintDC dc(this);
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP1);
//IDB_BITMAP1是你自己的图对应的ID
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);
}
展开全部
在类中加个画刷成员brush,再在OnInitDialogj里面加创建画刷的代码,
如:brush.CreateSolidBrush(RGB(255,0,0));(当然你也可以创建位图画刷)
再对你的对话框加入OnCtlColor的消息响应,
在函数体里面其它的不变返回值改为return (HBRUSH) brush.GetSafeHandle();
最后在你的Button按扭的响应里加入:
1,去掉你已经创建的画刷 brush.DeleteObject();
2,重新创建一个画刷如 brush.CreateSolidBrush(RGB(0,255,0));
3, 刷新一下 Invalidate();
如:brush.CreateSolidBrush(RGB(255,0,0));(当然你也可以创建位图画刷)
再对你的对话框加入OnCtlColor的消息响应,
在函数体里面其它的不变返回值改为return (HBRUSH) brush.GetSafeHandle();
最后在你的Button按扭的响应里加入:
1,去掉你已经创建的画刷 brush.DeleteObject();
2,重新创建一个画刷如 brush.CreateSolidBrush(RGB(0,255,0));
3, 刷新一下 Invalidate();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
四楼的方法虽然可以将图片贴上去,但是会将对话框上的控件遮住;并且加载图片不一定非要加载到工程中,用LoadImage可以直接加载本地磁盘的文件,二楼的可以方法可以解决图片将控件遮住的问题,这里就不重复了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
COLORREF color = dlg.GetColor();
获取颜色,dlg是CColorDlg dlg.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询