Click here to Skip to main content
15,909,539 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Complex String Comparison Pin
jhwurmbach7-Nov-02 1:35
jhwurmbach7-Nov-02 1:35 
GeneralHelp! about PreTranslateMessage Pin
Simon.W7-Nov-02 0:05
Simon.W7-Nov-02 0:05 
GeneralRe: Help! about PreTranslateMessage Pin
includeh107-Nov-02 3:09
includeh107-Nov-02 3:09 
GeneralRe: Help! about PreTranslateMessage Pin
Simon.W9-Nov-02 0:23
Simon.W9-Nov-02 0:23 
GeneralSELECT ... FOR XML AUTO Pin
Alexandru Savescu6-Nov-02 23:37
Alexandru Savescu6-Nov-02 23:37 
GeneralCListCtrl problem! Pin
Daniel Strigl6-Nov-02 23:03
Daniel Strigl6-Nov-02 23:03 
GeneralRe: CListCtrl problem! Pin
KarstenK7-Nov-02 0:11
mveKarstenK7-Nov-02 0:11 
GeneralRe: CListCtrl problem! Pin
Tim Ranker7-Nov-02 3:50
Tim Ranker7-Nov-02 3:50 
The way I do what you are asking is to use Owner Draw.
Here's how to do it.

1. Set the window style of the list control in your dialog resource to Owner Draw Fixed
2. Derive your own list control from CListCtrl
3. Override void CYourNewCtrl::DrawItem(LPDRAWITEMSTRUCT lpDIS)

Example
void CYourNewCtrl::DrawItem(LPDRAWITEMSTRUCT lpDIS) <br />
{<br />
	CDC dc;<br />
	dc.Attach(lpDIS->hDC);<br />
	int nCol;<br />
	LVCOLUMN lvc;<br />
	lvc.mask = LVCF_WIDTH|LVCF_FMT;<br />
<br />
	CRect rc = lpDIS->rcItem;<br />
<br />
	// Move the following color lines into the constructor to initialize only once<br />
	COLORREF m_crFG    = GetSysColor(COLOR_WINDOWTEXT);<br />
	COLORREF m_crBG    = GetSysColor(COLOR_WINDOW);<br />
	COLORREF m_crSelBG = GetSysColor(COLOR_HIGHLIGHT);<br />
	COLORREF m_crSelFG = GetSysColor(COLOR_HIGHLIGHTTEXT);<br />
<br />
	BOOL bSelected = GetItemState(lpDIS->itemID,LVIS_SELECTED);<br />
	BOOL bFocused = GetListCtrl().GetItemState(lpDIS->itemID,LVIS_FOCUSED);<br />
	<br />
	int nOldMode = dc.SetBkMode(TRANSPARENT);<br />
<br />
	// Selected??  Draw selection bar<br />
	dc.FillSolidRect(rc, bSelected?m_crSelBG:m_crBG);<br />
<br />
	COLORREF crText = (bSelected?m_crSelFG:m_crFG);<br />
<br />
	dc.SetTextColor(crText);<br />
<br />
	// Draw the icons, grid lines, and/or text here<br />
	<br />
	// Also look at the MSDN documentation for the following functions because you will<br />
	// need them to complete drawing the rest of the row<br />
	// CListCtrl::GetColumn(nCol,&lvc)<br />
	// GetSubItemRect(lpDIS->itemID, nCol, LVIR_BOUNDS, rect);<br />
	// CDC::DrawText<br />
	// DRAWITEMSTRUCT<br />
<br />
	dc.SetBkMode(nOldMode);<br />
<br />
	dc.Detach();<br />
}<br />


Kind regards,
Tim
GeneralRe: CListCtrl problem! Pin
Daniel Strigl7-Nov-02 3:58
Daniel Strigl7-Nov-02 3:58 
GeneralMore than one window Pin
mzakarni6-Nov-02 22:47
mzakarni6-Nov-02 22:47 
GeneralRe: More than one window Pin
Christian Graus6-Nov-02 22:53
protectorChristian Graus6-Nov-02 22:53 
GeneralRe: More than one window Pin
KarstenK7-Nov-02 0:17
mveKarstenK7-Nov-02 0:17 
GeneralRe: More than one window Pin
mzakarni7-Nov-02 1:08
mzakarni7-Nov-02 1:08 
Generalchange dll !!!!! Pin
maxyi6-Nov-02 22:35
maxyi6-Nov-02 22:35 
GeneralRe: change dll !!!!! Pin
Christian Graus6-Nov-02 22:40
protectorChristian Graus6-Nov-02 22:40 
GeneralRe: change dll !!!!! Pin
maxyi7-Nov-02 1:45
maxyi7-Nov-02 1:45 
GeneralRe: change dll !!!!! Pin
Jon Hulatt6-Nov-02 23:28
Jon Hulatt6-Nov-02 23:28 
GeneralRe: change dll !!!!! Pin
maxyi7-Nov-02 1:48
maxyi7-Nov-02 1:48 
GeneralMessage cross threads Pin
stevenson6-Nov-02 22:19
stevenson6-Nov-02 22:19 
GeneralRe: Message cross threads Pin
stevenson6-Nov-02 22:22
stevenson6-Nov-02 22:22 
GeneralRe: Message cross threads Pin
Daniel Lohmann7-Nov-02 1:39
Daniel Lohmann7-Nov-02 1:39 
GeneralRe: Message cross threads Pin
Daniel Lohmann6-Nov-02 22:45
Daniel Lohmann6-Nov-02 22:45 
GeneralRe: Message cross threads Pin
includeh107-Nov-02 0:15
includeh107-Nov-02 0:15 
GeneralRe: Message cross threads Pin
Daniel Lohmann7-Nov-02 1:37
Daniel Lohmann7-Nov-02 1:37 
GeneralRe: Message cross threads Pin
includeh107-Nov-02 2:47
includeh107-Nov-02 2:47 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.