请大虾们将listctrl表头的背景色及字体颜色的方法给小弟详细的列一下
本人初学,请大家多关照
还有static的背景色怎么只能改一小块显示部分
有改整个static的颜色的方法吗
本人初学,请大家多关照
还有static的背景色怎么只能改一小块显示部分
有改整个static的颜色的方法吗
解决方案 »
- VC6调试看不见调试窗口
- 如何才不能显示IE下载时候的对话框。
- 在线等,急!!!请教VC下使用汇编的一个简单问题,怎么不能用DOS中断int 21?
- 请给个能运行的简单的CS源代码例子.
- 在 oledb 中怎麼樣才能把 MSsql 類型綁定正確 ? 按書上的做類型綁定得不到正確數據,請大家幫幫忙指點指點,謝謝!!!
- 在线等待,立刻给分
- 各位大侠好,请问怎么直接通过url来下栽txt文件?来则有分
- 那位大虾能够提供双机容错和磁盘阵列的资料或下载地址!!
- 有没有动态结构数组的代码?
- 这样知道一个新运行程序的hwnd
- 各位高手,请问外挂是怎么写的????
- 新手问题,对于void、const等修饰的困惑!搜出来的都说得好象对我们新手不够详细!
内部用FONT等结构类等。
关键你要学VC就得安装MSDN,里面有超多的帮助
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// pDC->SetBkMode(TRANSPARENT);
// TODO: Change any attributes of the DC here
if( pWnd->GetDlgCtrlID() == IDC_STATIC1)
{
pDC->SetBKColor(RGB(0,0,255));
/* CBrush mBrush;
mBrush.CreateSolidBrush(RGB(0,0,0));
*/
}
//TODO: Return a different brush if the default is not desired
return hbr;
}
两位老大这个我知道
有没有详细点的程序呀
我弄不出来啊
{
CWnd *pWnd=GetDlgItem(IDC_STATIC1);
CDC *pCtrDC=pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
pCtrDC->SelectStockObject(BLACK_BRUSH);
CRect rect;
pWnd->GetWindowRect(&rect);
pCtrDC->Rectangle(0,0,rect.Width(),rect.Height());
pWnd->ReleaseDC(pCtrDC);
}
==== ====
==== File name : StaticTrans.h ====
==== Creation date : 7/10/2001 ====
==== Author(s) : Dany Cantin ====
==== ====
===========================================================================*/#ifndef STATICTRANS_H
#define STATICTRANS_H#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CStaticTrans window#define TRANS_BACK -1class CStaticTrans : public CStatic
{
// Construction
public:
CStaticTrans();
private:
COLORREF m_TextColor;
COLORREF m_BackColor;
CBrush m_Brush;
// Operations
public:
void SetTextColor(COLORREF col) { m_TextColor = col;
UpdateCtrl(); }
void SetBackColor(COLORREF col) { m_BackColor = col;
UpdateCtrl(); }private:
void UpdateCtrl();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CStaticTrans)
//}}AFX_VIRTUAL// Implementation
public:
virtual ~CStaticTrans(); // Generated message map functions
protected:
//{{AFX_MSG(CStaticTrans)
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
//}}AFX_MSG DECLARE_MESSAGE_MAP()
};
#endif // STATICTRANS_H
==== ====
==== File name : StaticTrans.cpp ====
==== Creation date : 7/10/2001 ====
==== Author(s) : Dany Cantin ====
==== ====
===========================================================================*/#include "stdafx.h"
#include "StaticTrans.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/////////////////////////////////////////////////////////////////////////////
// CStaticTransCStaticTrans::CStaticTrans()
{
m_TextColor = RGB(0, 0, 0);
m_BackColor = TRANS_BACK;
}CStaticTrans::~CStaticTrans()
{
}
BEGIN_MESSAGE_MAP(CStaticTrans, CStatic)
//{{AFX_MSG_MAP(CStaticTrans)
ON_WM_CTLCOLOR_REFLECT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
// CStaticTrans message handlersHBRUSH CStaticTrans::CtlColor(CDC* pDC, UINT nCtlColor)
{
m_Brush.DeleteObject();
if (m_BackColor == TRANS_BACK) {
m_Brush.CreateStockObject(HOLLOW_BRUSH);
pDC->SetBkMode(TRANSPARENT);
}
else {
m_Brush.CreateSolidBrush(m_BackColor);
pDC->SetBkColor(m_BackColor);
}
pDC->SetTextColor(m_TextColor);
return (HBRUSH)m_Brush;
}void CStaticTrans::UpdateCtrl()
{
CWnd* pParent = GetParent();
CRect rect;
GetWindowRect(rect);
pParent->ScreenToClient(rect);
rect.DeflateRect(2, 2);
pParent->InvalidateRect(rect, FALSE);
}
{
CWnd *pWnd=GetDlgItem(IDC_STATIC1);
CDC *pCtrDC=pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
pCtrDC->SelectStockObject(BLACK_BRUSH);
CRect rect;
pWnd->GetWindowRect(&rect);
pCtrDC->Rectangle(0,0,rect.Width(),rect.Height());
pWnd->ReleaseDC(pCtrDC);
}为什么我用了这段程序后静态框整个都变色了
可是却不能显示文本了呢
还请这位大哥给指点一下
还有listctrl表头的问题怎么弄啊
大虾们
指点迷津啊
m_brush.CreateSolidBrush(RGB(0,0,0));HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
// TODO: Return a different brush if the default is not desired
if (pWnd->GetDlgCtrlID() == IDC_RESULT)
{
// Set the text color to red
pDC->SetTextColor(RGB(255, 255, 0));
pDC->SetBkColor(RGB(0,0,0));
// Return handle to our CBrush object
hbr = (HBRUSH)m_brush;
}
return hbr;
}
然后用SetWindowLong(m_wndListCtrl.GetHeadCtrl().m_hWnd,GWL_WNDPROC,WndProc)中,
再改吧!