|
Thanks for your help guys.
I found the Append function under CStringArray. I'll try to use it first, if this will not give the result I needed, I will try your solutions guys..
Thanks for the responds..
With great power comes a great responsibility.
|
|
|
|
|
Thanks for your help guys.
I found the Append function under CStringArray. I'll try to use it first, if this will not give the result I needed, I will try your solutions guys..
Thanks for the responds..
With great power comes a great responsibility.
|
|
|
|
|
The following is my code for the listctrl
/////////////////////////////////////////////////////////////
lvItem.iImage = m_nIcon;
for (int i = 0; i<200;i++)
{
nChk ++;
szTest.Format("%d",nChk);
m_test = szTest;
UpdateData(FALSE);
// Set up item
lvItem.mask = LVIF_TEXT | LVIF_IMAGE;
lvItem.iItem = 0;
lvItem.iSubItem = 0;
lvItem.pszText = LPTSTR(LPCTSTR(szTest));
m_List.InsertItem (&lvItem);
// Set up time and date
CString szTimeDate = timeTimeStamp.Format(LOCALE_NOUSEROVERRIDE,
LANG_USER_DEFAULT);
int nIndex = szTimeDate.Find(" ");
CString szTime = szTimeDate.Right(szTimeDate.GetLength() - nIndex - 1);
CString szDate = szTimeDate.Left(nIndex);
nListCount = m_List.GetItemCount();
if(nListCount >1000)
m_List.DeleteItem (nListCount-1);
nListCount = m_List.GetItemCount();
// Insert Subitem in list control (date)
lvItem.mask = LVIF_TEXT;
lvItem.iSubItem = 1; // SubItem 1 is Date column
lvItem.pszText = LPTSTR(LPCTSTR(szDate));
m_List.SetItem(&lvItem);
// Insert Subitem in list control (time)
lvItem.iSubItem = 2; // SubItem 2 is Time column
lvItem.pszText = LPTSTR(LPCTSTR(szTime));
m_List.SetItem(&lvItem);
}
///////////////////////////////////////////////////////////
What I find is that the memory requirement increases as I increase the items
but as u can see I am removing the items from the List after the max. no of
items is reached still I find a large chunk of memory being taken up.
The memory requirement for say 1000 items is 2964K then it should remain the
same as I am deleting the extra items. How can I control this memory
requirement.?
Rohan
|
|
|
|
|
Make a virtual list...
NG
|
|
|
|
|
You are assuming that deleting an item from a list control, or freeing memory in general, automatically lowers your application's memory footprint. That is wrong. While freed memory does eventually make its way back to the available pool, Task Manager will show you what is effectively a high-water mark. In other words, just because you do not see it go down does not necessarily mean there is a problem.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
How do I check that the memory requirement for the EXE is within permissible limits.Since the action atleast indicates an increase in memory usage by the EXE.
As you say the Task Manager is not the true picture, but the memory usage shown in the same is certainly increasing.How do I solve that.
|
|
|
|
|
I'm not exactly sure what you are asking, but it sounds like you need to run your program trhrough all of the possible combinations, and then note the memory consumption via Task Manager right before you shut it down. That might give you a good-enough answer to the question, "In the worst case, how much memory does my program require to run?"
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Respected all
Regards!
I am a begginers n VC++.i have a problem.
" I have a number of images(bitmaps) that are stored on disk,I want to read all the images once and store all the images in a temprary storage area when my program runing instead of reading one by one image,I think "CImageList " will solve my prolem but not because this store all the images of same size and i have images of different sizes.
so plz help me that how i handle this problem
david
|
|
|
|
|
You can use CBitmap to load the bitmaps, but create the CBitmap objects dynamically.
And you can have a class variable like:
CPtrArray m_ptrBitmapArray;
CBitmap* b;
Do the following for all bitmaps.
b = new CBitmap;
b->LoadBitmap(...);
Then add the bitmap to the array.
m_ptrBitmapArray.Add(b);
You can again access them like:
CBitmap* b;
b = (CBitmap*)m_ptrBitmapArray.GetAt(0);
this is this.
|
|
|
|
|
Use a simple linked list of image data.
- Parhar
|
|
|
|
|
How can I get a Color of Control. The only information do I have is the handle of that control. How Can I Get and Set is Color. I tried out:
CDC* pDC = wndCtrl.GetDC();
pDC->SetBkColor(...);
I hope it wud worked but it didnt ... Any help on both ( getting and setting ) color of a control with above mentioned requirement.
Best Regards
|
|
|
|
|
class CStrEdit : public CEdit
{
protected:
COLORREF m_crTextColor;
COLORREF m_crBkColor;
CBrush m_brush;
...
...
...
};
...
...
...
...
CStrEdit::CStrEdit()
{
m_crBkColor = ::GetSysColor(COLOR_WINDOW);
m_crTextColor = ::GetSysColor(COLOR_WINDOWTEXT);
}
CStrEdit::~CStrEdit()
{ m_brush.DeleteObject(); }
BEGIN_MESSAGE_MAP(CStrEdit, CEdit)
ON_WM_CTLCOLOR_REFLECT()
ON_WM_CREATE()
END_MESSAGE_MAP()
// CStrEdit message handlers
HBRUSH CStrEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
if (m_brush.m_hObject) {
pDC->SetBkColor(m_crBkColor);
pDC->SetTextColor(m_crTextColor);
return (HBRUSH) m_brush.m_hObject;
} else
return NULL;
}
void CStrEdit::SetBkColor(COLORREF crColor)
{
m_crBkColor = crColor;
if (m_brush.m_hObject)
m_brush.DeleteObject();
m_brush.CreateSolidBrush(crColor);
}
void CStrEdit::SetTextColor(COLORREF crColor)
{ m_crTextColor = crColor; }
int CStrEdit::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEdit::OnCreate(lpCreateStruct) == -1)
return -1;
SetBkColor(m_crBkColor);
SetTextColor(m_crTextColor);
return 0;
}
Got the solution? Then rate this.
Nice talking to you.
|
|
|
|
|
Well I am doing it. Actually I am deriving a class from CFileDialog but I simply cant catch the WM_CTLCOLOR or WM_CTLCOLOR_REFLECT message whereas when I derive the class from CDialog then I am able to handle the message WM_CTLCOLOR or WM_CTLCOLOR_REFLECT. any help on it.
Regards
|
|
|
|
|
Ibraheem Khan wrote:
Set is Color. I tried out:
you have to Handle WM_CTLCOLOR message in your application
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
Well I am doing it. Actually I am deriving a class from CFileDialog but I simply cant catch the message whereas when I derive the class from CDialog then I am able to handle the same message u mentioned. any help on it.
|
|
|
|
|
Hello,
I want code to creating DSN dynamically.
|
|
|
|
|
parims wrote:
I want code to creating DSN dynamically.
great ! that's all you want ? humm, let me see what i have in my bag... oh, here is this :-
void main(void) {
}
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
i don't know where is that poor dick who vote down anonymously, but 2 things for you, sucker :
1- that was a joke !! can't you see the icon ?
2- the original question wasn't that clear to give a much precise answer ! moreover, people asking that way (I WANT, I WANT) don't generally get much pertinent responses...
now, give me a 1 if you cannot say your name b*tch
TOXCCT >>> GEII power [toxcct][VisualCalc]
|
|
|
|
|
Just use SQLConfigDataSource() .
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Hello, everyone!
I want to develop a network printer monitor, which will run on a network printer server. It should trap every print job sent to it, then send notification about authorization to the client PC which sent this job, and receive and check password messsage, then determine to continue print job or deny it. At last it logs the print job in a local access db.
Perhaps, I should develop a client app which gets authorization information as soon as user start a print job, attaches them to the print job, and sends to network printer.
Any ideas about how to do? Thanks in advance.
Dave
|
|
|
|
|
Hello.,
I developed an application which stores some data.
Next I create a setup file .
The SetUp file (If I installed in my Machine) works fine in my System, But It can not works fine in other machines.
=>Because I hard coded the DSN name as 'MyDSNName'
and Database Table as 'MyDataBase'
--
I wrote code like this.-=-->
-------------
CString sql,sDate;
CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
CString sDsn;
CString sFile = "c:\\mydatabase.mdb";
CDatabase db;
sDsn.Format("ODBC;DRIVER={%s};DSN='MyDsnName';DBQ=%s",sDriver,sFile);
db.Open(NULL,false,false,sDsn);
CRecordset recset( &db);
------------
>>I want flexible code ,which works fine for all machines.,
Praveen
|
|
|
|
|
no need for dsn here
specify the path of the database where you are going to install the program
and it will work fine , may be you can specify the path where your exe file is there
|
|
|
|
|
As I told you yesterday you have to look this article[^]
There you'd fine that you can connect to the DB without using a DSN name:
<br />
strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"<br />
"Dbq=c:\\DatabasePath\\dbaccess.mdb;Uid=; Pwd=;");<br />
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
-- modified at 2:28 Tuesday 6th September, 2005
|
|
|
|
|
Duplicating/Triplicating your thread won't solve it ...
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
See this link about DSN-less connections. Google for others.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|