|
I have a ClistCtrl with three columns how do i select wich colum i want to insert my string.
Each time i insert a String it is inserted in the same column (1):
int a;
a = m_F.m_SN.GetCount()-1;
while (a>0)
{
S = m_F.m_SN.GetAt(m_F.m_SN.FindIndex(a));
CLC.InsertItem(a,S.SNUPS,0);
CLC.InsertItem(a,S.SNRand,1);
CLC.InsertItem(a,S.SNDevice,2);
a--;
}
/\|-||\/|/\|)
|
|
|
|
|
You have to fill the LVITEM structure:
<br />
LVITEM lvi;<br />
CString csText = "Hi !!";<br />
<br />
lvi.iItem = 0;
lvi.iSubItem = 1;
lvi.mask = LVIF_TEXT;
lvi.pszText = csText.GetBuffer(0);<br />
CLC.InsertItem(&lvi);<br />
For a complete guide Using the List Control
[^]
I hope it helps,
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
|
Hi,
InsertItem, adds an item to the listcontrol, this is a full line in the list view and is in fact the text of the first column.
The text in the other columns (2 and further) is call subitems.
int nIndex = 1;
nIndex = c_listcontrol.InsertItem(nIndex, "placed in first column");
// use the new index because we dont know where the actual item is added in the listview,
// due to sorting and so.
// add to second column, 1: subindex is zero based
c_listcontrol.SetItemText(nIndex, 1, "placed in second column");
// add to third column, 2:
c_listcontrol.SetItemText(nIndex, 2, "placed in third column");
Regards
Kurt Pattyn
codito ergo sum
|
|
|
|
|
|
I have written the following piece of code into my project. But it is giving me assertion error. Can anyone tell me what is problem in it?
void CPungaDlg::OnBUTBrw()
{
CFileDialog find(true, NULL, NULL, OFN_EXPLORER, NULL, NULL);
find.DoModal();
CString filename = find.GetFolderPath();
m_name = filename; //prints address in edit box.
UpdateData(false);
}
We Believe in Excellence
|
|
|
|
|
|
Strange cause even GetFolderPath is only valid for an Explorer-style window you have provided this style ... and it crashes
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
The assertion is this, right?
CString CFileDialog::GetFolderPath() const
{
ASSERT(::IsWindow(m_hWnd));
[...]
}
It means that calling CFileDialog::GetFolderPath is only allowed while the file dialog is active, and not after DoModal has returned, as it is your case.
If you are only interested in the folder for the selected file, consider using SHBrowseForFolder instead of CFileDialog .
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|
|
how to clear items of CList ?
i miss m_Clist.Clear();
regards,
Rookie
|
|
|
|
|
From MSDN: CList::RemoveAll[^]
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
it's for win CE it seems.. its not working..
n also why there's no method like m_clistbx.RemoveAll() available in the control variable m_clistbx??
regards,
Rookie
|
|
|
|
|
Ups !!! I think you'll have to remove them one by one looping through the CList, using GetCount and IsEmpty and RemoveTail, RemoveHead or RemoveAt.
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
(edited ... I forgot how to read this morning ... )
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
somebody help...
how to clear a list box? no straight method for it??
regards,
Rookie
|
|
|
|
|
Rookieee wrote:
how to clear a list box?
How about CListBox::ResetContent() , or SendMessage(..., LB_RESETCONTENT, ...)?
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
hi
To clear a listbox you must call the following function
...
c_listBox.ResetContent();
...
Regards,
Pattyn Kurt
codito ergo sum
|
|
|
|
|
thanx to resetcontent and u guys
regards,
Rookie
|
|
|
|
|
i need to update a list view with DateTme..which is in FILETIME struct.How can i convert it to string ?
Thanks
|
|
|
|
|
Using FileTimeToSystemTime[^] you have a SYSTEMTIME var with all the info:
From msdn:[^]
<br />
FILETIME ftCreate, ftAccess, ftWrite;<br />
SYSTEMTIME stUTC, stLocal;<br />
LPTSTR lpszString;<br />
<br />
GetFileTime(hFile, &ftCreate, &ftAccess, &ftWrite)<br />
FileTimeToSystemTime(&ftWrite, &stUTC);<br />
wsprintf(lpszString, TEXT("%02d/%02d/%d %02d:%02d"),<br />
stLocal.wMonth, stLocal.wDay, stLocal.wYear,<br />
stLocal.wHour, stLocal.wMinute);<br />
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
Hello,
I've got a little problem... seams I do not have realy understand how CMenu work.
I'm creating menu by hand using such method :
<br />
BOOL menuTest = m_cMenu.CreateMenu();<br />
MENUITEMINFO menuItemInfo;<br />
menuItemInfo.cbSize = sizeof(MENUITEMINFO);<br />
menuItemInfo.fMask = MIIM_ID;<br />
<br />
menuTest = fileMenu.CreatePopupMenu();<br />
if ( menuTest == TRUE ) {<br />
LoadString(AfxGetInstanceHandle(), IDS_NOUVEAU, projectPrefix, MAX_PATH);<br />
fileMenu.AppendMenu(MF_STRING | MF_ENABLED, IDS_PROJECT_ID_BASE+IDS_NOUVEAU, projectPrefix);<br />
<br />
LoadString(AfxGetInstanceHandle(), IDS_OUVRIR, projectPrefix, MAX_PATH);<br />
fileMenu.AppendMenu(MF_STRING | MF_ENABLED, IDS_PROJECT_ID_BASE+IDS_OUVRIR, projectPrefix);<br />
<br />
...<br />
<br />
LoadString(AfxGetInstanceHandle(), IDS_FICHIER, projectPrefix, MAX_PATH);<br />
m_cMenu.AppendMenu(MF_POPUP, (UINT)fileMenu.m_hMenu, projectPrefix);<br />
<br />
menuItemInfo.wID = IDS_PROJECT_ID_BASE+IDS_FICHIER;<br />
menuTest = m_cMenu.SetMenuItemInfo( pos++, &menuItemInfo, TRUE );<br />
}<br />
<br />
...<br />
<br />
SetMenu(&m_cMenu);<br />
Doing this, menu is created with success. One problem is all element appear grayed.
So I've seen later, that added ON_COMMAND( IDS_PROJECT_ID+IDS_NOUVEAU, OnMyMenuCommand ) would active them.
So I've added a ON_COMMAND_EX_RANGE with range of menu id (I dislike this method...), but then ALL of my menu item are activated, whereas they have been create with MF_GRAYED or MF_DISABLED.
So, my question is, how to build menu ? and how to make them work normaly, responding to standard OnMenu... method ???
Tx by advance,
|
|
|
|
|
Hi again, it seems the problem just come from the display of the menu.
When I check for the menuItem state, it is well in the creation state...
do not understand
|
|
|
|
|
Hi
If I remember correctly, this is what happens:
- If there is no function linked to a menu item (using the ON_COMMAND macro) the item will be grayed. This is normal because no function could be executed anyway.
- If there is a function linked the item will appear enabled and the linked function would be called upon a click.
!! If you want the menu items to dynamicaly change the state from enabled to disabled (and vice versa) depending on the state the whole program is in, you need to implement the ON_UPDATE_COMMAND_UI macro and create a handler in the object that will handle the update.
class CFoo
{
...
afx_msg void OnUpdateMyMenuCommand(CCmdUI* pCmdUI);
};
// in the message map you must include
ON_UPDATE_COMMAND_UI(IDS_PROJECT_ID+IDS_NOUVEAU, OnUpdateMyMenuCommand)
CFoo::OnUpdateMyMenuCommand(CCmdUI* pCmdUI)
{
pCmdUI->Enable(ToolAvailable());
}
Hope this is helpfull
Regards,
Kurt Pattyn
codito ergo sum
|
|
|
|
|
this[^] will probably help you on your way...
and if you'd like to have more infos on menus (ans especially CMenu s, read Roger Allen's Menus for beginners[^].
cheers,
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
Tx guys !!!
I miss the line about ON_UPDATE_COMMAND_UI...
Tx for all, it works !!!
<br />
UINT state = m_cMenu.GetMenuState( pCmdUI->m_nID, MF_BYCOMMAND );<br />
state = (state & MF_DISABLED) | ( state & MF_GRAYED );<br />
pCmdUI->Enable( ! ( state > 0 ) );<br />
|
|
|
|
|