C++ 设置文档窗口背景颜色
我想设置程序的窗口背景颜色,用的COLORREFSetBkColor(),可是vs提示链接规范与前面的SetBkColor(已声明,所在行数:4015,所在文件:C:\P...
我想设置程序的窗口背景颜色,用的COLORREF SetBkColor(),可是vs提示
链接规范与前面的SetBkColor(已声明, 所在行数:4015,所在文件:C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\WinGDI.h)不兼容。
什么意思?怎么解决? 展开
链接规范与前面的SetBkColor(已声明, 所在行数:4015,所在文件:C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\WinGDI.h)不兼容。
什么意思?怎么解决? 展开
展开全部
两个问题,
1. SetBkColor()的正确调用API是
SetBkColor(HDC, COLORREF);
如果是MFC的CDC成员函数,调用是
CDC::SetBkColor(COLORREF);
需要设置的颜色是参数
2. SetBkColor并不是用来改变背景颜色,而是设置文字输出的背景色
如果希望改变窗口的背景色,应该在窗口的类结构(WNDCLASS)中,修改背景刷子。
1. SetBkColor()的正确调用API是
SetBkColor(HDC, COLORREF);
如果是MFC的CDC成员函数,调用是
CDC::SetBkColor(COLORREF);
需要设置的颜色是参数
2. SetBkColor并不是用来改变背景颜色,而是设置文字输出的背景色
如果希望改变窗口的背景色,应该在窗口的类结构(WNDCLASS)中,修改背景刷子。
更多追问追答
追问
问下 具体怎么修改背景刷子?
追答
不知道你是基于API还是MFC编程的。
如果是MFC的话,重载PreCreateWindow成员,修改cs结构的lpszClass
cs.lpszClass = AfxRegisterWndClass(
0, 0,
::CreateSolidBrush(cr) ); // 这里cr填入你需要的颜色值
如果是API,那在调用RegisterClassEx时,将参数WNDCLASSEX结构中的hbrBackground设为背景刷句柄
wcex.hbrBackground = ::CreateSolidBrush(cr);
TableDI
2024-07-18 广告
2024-07-18 广告
在上海悉息信息科技有限公司,我们深知Excel在数据处理中的重要作用。在Excel中引用不同工作表(sheet)的数据是常见的操作,这有助于整合和分析跨多个工作表的信息。通过在工作表名称前加上感叹号“!”,您可以轻松地引用其他工作表中的数据...
点击进入详情页
本回答由TableDI提供
展开全部
改变单文档窗口背景颜色。
找到CView的继承的类
增加创建消息
增加下列代码。
int CWndView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
static CBrush brush;
brush.CreateSolidBrush(RGB(255,0,0));//创建画刷
SetClassLong(this->m_hWnd, GCL_HBRBACKGROUND,(LONG)brush.m_hObject);//设置画刷
return 0;
}
找到CView的继承的类
增加创建消息
增加下列代码。
int CWndView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
static CBrush brush;
brush.CreateSolidBrush(RGB(255,0,0));//创建画刷
SetClassLong(this->m_hWnd, GCL_HBRBACKGROUND,(LONG)brush.m_hObject);//设置画刷
return 0;
}
追问
不太懂~~
追答
你用上面的代码测试过了吗?
SetClassLong(this->m_hWnd, GCL_HBRBACKGROUND,(LONG)brush.m_hObject);//替换原来注册的窗口类的画刷。
1楼的方法是在注册窗口类的时候替换;SetClassLong可以在注册窗口类之后替换的;
这样简单,不用自己在编写自己的窗口类了,当然1楼用了全局函数 AfxRegisterWndClass的进行注册默认的窗口类。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SetBkColor(COLORREF 参数)
不是返回值
你是要设置,不是获取。
不是返回值
你是要设置,不是获取。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询