|
Hi,
While displaying values in CListCtrl it is not displaying values for certain
columns what is the problem
I am using SetItemText() function for setting values.
For few columns it is working for few columns it is not working
what is the problem.
Can any one please me.
Regards,
Sakhalean.
|
|
|
|
|
Please post the relevant code.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hi,
Here m_ListInfoCtrl is a varible for CListCtrl
ie dialog listcontrol and a dialog variable
while( !m_pFrame->m_DbMgr.m_Rs.IsEof() )
{
m_pFrame->m_DbMgr.m_Rs.GetFieldValue( "LruIndex", nLruIndex );
strTemp.Format( "%d", nLruIndex );
m_pFrame->m_nLruIndex = nLruIndex;
m_ListInfoCtrl.InsertItem( nLruIndex-1, strTemp );
//---- LRU Name ------------
m_pFrame->m_DbMgr.m_Rs.GetFieldValue( "LruName",strLruName );
m_ListInfoCtrl.SetItemText( nLruIndex-1, 1, strLruName );
//----- MIl Bus ----------------
m_pFrame->m_DbMgr.m_Rs.GetFieldValue( "MilBus", strTemp );
strTemp.Insert( 0, " " );
m_ListInfoCtrl.SetItemText( nLruIndex-1, 3, strTemp );
m_pFrame->m_DbMgr.m_Rs.MoveNext();
}
}catch( CADOException& e )
{
strSql = "CSIRBaseView::UpdateListControl():GetFieldValue "+e.GetErrorMessage();
MessageBox( strSql );
}return FALSE;
Here firt two columns are coming ie LRUIndex and LRUName
but the third column MilBus is not displaying the value.
|
|
|
|
|
m_ListInfoCtrl.SetItemText( nLruIndex-1, 3, strTemp );
should be
m_ListInfoCtrl.SetItemText( nLruIndex-1, 2, strTemp );
I'm pretty sure.
|
|
|
|
|
Hi,
I have used
//---- LRU Type -----------
m_pFrame->m_DbMgr.m_Rs.GetFieldValue( "LruType", nLruType );
strTemp = m_pFrame->m_strLruType[nLruType-7001];
m_ListInfoCtrl.SetItemText( nLruIndex-1, 2, strTemp );
column 2 for LRU Type
I have used here 7 columns
all columns it is showing the values but for column 3 only
it is not showing the value.
Please help me.
|
|
|
|
|
/----- MIl Bus ----------------
m_pFrame->m_DbMgr.m_Rs.GetFieldValue( "MilBus", strTemp );
strTemp.Insert( 0, " " );
m_ListInfoCtrl.SetItemText( nLruIndex-1, 3, strTemp );
That is your original code. Notice that you're inserting a space into the string, and that's it. This is why nothing is showing in the column. All you're doing is inserting nothing... or more to the point, you're inserting nothing that can be seen by the naked eye.
Try putting an "A" or "Test" or something into that string, to double check that the code is working correctly. Because at this point, I think it is.
|
|
|
|
|
Scratch what I said before, I didn't look closer. I feel stupid.
Ok so honestly you probably don't even need the strTemp.Insert(...) call. If you take that out, see what happens. I'm betting that it'll work. The reason why I say this is because the " " is null-terminated. Though this shouldn't matter, I think that's what the problem is. I'm betting that if you take the Insert call out, then you'll be left with whatever value strTemp holds originally from the GetFieldValue(...) call.
|
|
|
|
|
Sakhalean wrote: m_ListInfoCtrl.InsertItem( nLruIndex-1, strTemp );
int x = m_ListInfoCtrl.InsertItem(nLruIndex-1, strTemp);
...
m_ListInfoCtrl.SetItemText(x, 1, strLruName);
m_ListInfoCtrl.SetItemText(x, 2, strTemp);
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
He was having a problem with the column. Indexing for columns is the second argument for SetItemText.
When inserting an item, the item text defaults to column 0 (first column).
Setting item text is then indexed in the second argument, so the first function call to SetItemText is correct (index number 1). The second function call was incorrect, because there are only 3 columns, and there is no "column 3".
His problem was that he used index 3.
|
|
|
|
|
josda1000 wrote: His problem was that he used index 3.
Possibly, but the bigger issue was the he was not using the return value from InsertItem() . If the list control has the either of the LVS_SORTxxx styles, then calling InsertItem(nLruIndex-1, ...) does not guarantee that the newly inserted item will be at position nLruIndex-1 .
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
Good point. I think both points are valid then.
|
|
|
|
|
Hi,
I am adding one .lib dependency with my project using vs2008 and its conficting with MSVCR90.DLL.
Linker Error is: error LNK2005: __amsg_exit already defined in msvcrtd.lib(MSVCR90D.dll)
How can I resolved that?
|
|
|
|
|
What library or .lib ar you adding to the project?
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
|
|
|
|
|
|
Did you produce the library from source or was the .lib provided to you? My suspicion is that the .lib you are using has not been produced correctly.
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
|
|
|
|
|
Yes I build the source code using vc6 becuase I was not able to build it on vs2008.
Same lib is working on vc6 but not vs2008.
It is conflicting with msvcrtd.lib.
Please guide me to solve this issue....
|
|
|
|
|
Is the .lib project the same on vc6 as on vs2008?
Is the .lib project a static library or a dynamic library project?
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
|
|
|
|
|
Yes, it is same as on both.
And this is static library.
|
|
|
|
|
Your problem is that you're trying to link with two versions of the VC++ library. One's from VC++6 and the other's from VC++9.
The cleanest way of getting around this is to rebuild the VC++6 component using VC++9 - build it and clean up the errors and warnings. You can do some fiddling about with linker switches (/NOD and explicitly link your app with the libraries it wants) but there's a fair chance it'll fail somewhere in the build (if you're lucky) or produce all sorts of interesting errors (when run by your customer/professor).
Cheers,
Ash
|
|
|
|
|
Trying to link with a static library .lib file produced on vc6, using vs2008 is asking for a whole lot of grief. Mainly because of what Ash has replied to you with. You're best approach now is to try to get the static library to build on vs2008. What are the errors when you compile the library?
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
|
|
|
|
|
Whenever you get a linker error of this type, whinging that something has already been defined in a library starting with MSVC, it's almost certainly because you're trying to link two or more object files that have been compiled for different versions of the C++ runtime library. Generally most people ship their libraries to link with the release multi-threaded DLL version of the library, but this isn't exclusively true.
So what can you do about it?
If you have the library source change the compiler settings of the library to match your application. If you haven't got the source then change the compiler settings of your application to match the library - the author should have documented it somewhere.
To find the setting you need to fiddle select the project then dig through the project->properties->configuration properties->C++->code generation and look for "Runtime library."
Whatever you do unless you really know what you're up to, don't try linking against different versions of the library, all sorts of things can go horribly wrong in strange and interesting ways.
Cheers,
Ash
|
|
|
|
|
|
Hi,
I am working on Excel Automation.
Implemented the logic to retrieve all the running Excel instances, now I am getting IDispatch pointer. Assigning this IDispatch Pointer to Excel object.
Following is the code:
IDispatch* p=NULL;
HRESULT hr = AccessibleObjectFromWindow(hwnd, OBJID_WINDOW, __uuidof(IDispatch), (void**)&p);
if(hr == S_OK)
{
try
{
Excel::WindowsPtr pWindow = NULL;
HRESULT hr = p->QueryInterface(__uuidof(IDispatch),(void**)&pWindow);
Excel::_ApplicationPtr xl;
xl = pWindow->Application;
But its throwing exception at above line. The com error is: m_hresult is "Member not found".
I googled but there is no clarity in solution.
If any clue, please let me know.
Thanks in Advance.
Regards,
KTTransfer.
|
|
|
|
|
Hi,
is there a way to modify the screen contents on the fly? I would like to modify one specific pixel before it is sent to the monitor.
The reason for this is that I have a strangely behaving stuck pixel on my laptop. The blue part of the RGB is inverted so the pixel is blue when it should be black or yellow when it should be white.
I would like to invert the blue component of that particular pixel before it is displayed so that due to double-inversion it will have the correct color.
Preferably I would like to implement this without a window but I guess I could always display an on-top, one-pixel-big window and send the clicks to underlying one. I would probably have to run this in admin mode to be able to send clicks to admin-owned underlying windows.
A better solution would be to access the screen buffer directly.
How would you guys go about it?
Thanks,
yak
|
|
|
|
|
Well, I would hack the driver.
Oh, wait, I wouldn't, but you might do it.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|