|
Hello Wasif
As far as i know color of the title bar of any window is decided by the currently applied theme or selected color in the "Appearence" Tab of "Display properties" System dialog.
i guess by some way or other if you could get that system Dialog and change these settings programatically but doing this will change title color of all windows. or you could also try to search about HTHEME in MSDN
any ways i hope u will get some clue from this message and will start thinking in a different direction.
All the best
Muhammad Azam
1st Semester M.Engg
NED UET
|
|
|
|
|
As mentioned by Muhammed, the Title bar colour is determined by
your current colour scheme. If you want to create your own unique title bar window, you probably have to handle the drawing yourself.
This would probably involve handing
the WM_NCPAINT message. I don't think there is any lightweight solution to your request, but if you still want to pursue that idea, there are a few articles on CP about creating custom windows title bars.
I Dream of Absolute Zero
|
|
|
|
|
|
Hi, all
I'm adding items to the list control:
for (i = 0; i < pDoc->GetSize(); i++)
{
LV_ITEM lvi;
CMovieData* pMovie = pDoc->GetMovie (i);
lvi.mask = LVIF_TEXT | LVIF_PARAM;
lvi.iItem = i;
lvi.iSubItem = 0;
lvi.pszText = new TCHAR[]; // this line is 63
_tcscpy (lvi.pszText, pMovie->Name);
movList.InsertItem (&lvi);
lvi.mask = LVIF_TEXT;
lvi.iImage = i;
lvi.iSubItem = 1;
_tcscpy (lvi.pszText, pMovie->GetGenre());
movList.SetItem (&lvi);
}
After program stopping I get a message:
Detected memory leaks!
Dumping objects ->
d:\temp\projects\movies\moviesview.cpp(63) : {334} normal block at 0x00376190, 0 bytes long.
Data: <>
d:\temp\projects\movies\moviesview.cpp(63) : {333} normal block at 0x00379DD0, 0 bytes long.
Data: <>
{90} normal block at 0x00372D10, 24 bytes long.
Data: < 2| > D8 9C 32 7C 07 00 00 00 07 00 00 00 01 00 00 00
d:\temp\projects\movies\moviesdoc.cpp(44) : {87} normal block at 0x00372848, 4 bytes long.
Data: < -7 > 20 2D 37 00
Object dump complete.
The 63 line I've marked. Is it possible to delete in some way the strings? Thanks.
|
|
|
|
|
The pszText variable only requires the pointer to your displayed string. Because you are already storing the textual information in your document, you only need to set this variable to your string array.
Try this:
for (i = 0; i < pDoc->GetSize(); i++)
{
CMovieData* pMovie = pDoc->GetMovie(i);
LV_ITEM lvi;
lvi.mask = LVIF_TEXT | LVIF_PARAM;
lvi.iItem = i;
lvi.iSubItem = 0;
<font color=red> lvi.pszText = (LPCTSTR)pMovie->Name;</font>
lvi.iImage = i;
int pos = movList.InsertItem (&lvi);
movList.SetItem(pos, 1, (LPCTSTR)pMovie->GetGenre());
}
[EDIT]
This will eliminate the need to create unmanaged memory allocation which resulted in your memory leaks.
[/EDIT]
I Dream of Absolute Zero
|
|
|
|
|
for (i = 0; i < pDoc->GetSize(); i++)
{
CMovieData* pMovie = pDoc->GetMovie (i);
LV_ITEM lvi;
lvi.mask = LVIF_TEXT | LVIF_PARAM;
lvi.iItem = i;
lvi.iSubItem = 0;
lvi.pszText = (LPCTSTR) pMovie->Name;
//_tcscpy (lvi.pszText, pMovie->Name);
movList.InsertItem (&lvi);
}
d:\Temp\PROJECTS\Movies\MoviesView.cpp(63) : error C2440: '=' : cannot convert from 'ATL::CSimpleStringT::PCXSTR' to 'LPSTR'
with
[
BaseType=char,
t_bMFCDLL=true
]
Conversion loses qualifiers
|
|
|
|
|
In this case, you will need to get a pointer to the underlying string array.
One suggestion would be:
..
lvi.pszText = pMovie->Name.GetBuffer(0);
pMovie->Name.ReleaseBuffer();
..
I Dream of Absolute Zero
|
|
|
|
|
(LPTSTR) (LPCTSTR) pMovie ->Name
That also works well to get around the limitations of the structure definition.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
how do i add arabic language in menu?
using vc++ 6.............
thanks ahead!
|
|
|
|
|
Just Enable UNICODE support in your application by using these macro
#ifndef UNICODE
#define UNICODE
#endif
these macro will enable the UNICODE SUPPORT In your application and with help of UNICODE charater set you can easily USE arabic in your APPLICATION .
"I Think this Will Help"
[Vote One Here,.....]
<h5
alok gupta="" <br=""> visit me at http://www.thisisalok.tk
|
|
|
|
|
I`m building a MDI application. I couldn`t iterate through the views. I use :
POSITION pos = CFileManDoc::GetFirstViewPosition();<br />
while (pos != NULL)<br />
{<br />
CFileManView* pView = (CFileManView*) CFileManDoc::GetNextView(pos);<br />
ASSERT_VALID(pView);<br />
pView->GetWindowText(strText);<br />
AfxMessageBox(strText);<br />
}
It only went to the active view. Any idea?
<italic>Work hard and a bit of luck is the key to success. You don`t need to be genius, to be rich.
|
|
|
|
|
Is it possible that an app is called MDI because it is a multiple DOCUMENT Interface
However, I think that each of your documents only has one view associated with it, unless you are certain you opened up multiple VIEWS on each document.
You need nested loops to get all views in the program...
Firstly, use CWinApp::GetFirstDocTemplatePosition to get first document template position in the program, and iterate each of the found document templates.
Secondly, use CDocTemplate::GetFirstDocPosition to get first document of the currently iterated document template, and iterate all the documents associated with the currently iterated doeument template.
Thirdly, use CDocument::GetFirstViewPosition to begin iteration of each view associated with the currently iterated document.
In this way, you will get a pointer to each 'view' in your MDI program.
|
|
|
|
|
Blake Miller wrote:
unless you are certain you opened up multiple VIEWS on each document.
I`m certain. I really don`t know what went wrong.
<italic>Work hard and a bit of luck is the key to success. You don`t need to be genius, to be rich.
|
|
|
|
|
You will have to debug why your view is not in the view list for the document.
I would place a breakpoint where it is created and start single stepping through the code to figure this one out. There is a member of the document class, I think it is a simple list or array, that contains the views. Your view should have been in that list.
|
|
|
|
|
OK, I`ll try that. Thanks.
<italic>Work hard and a bit of luck is the key to success. You don`t need to be genius, to be rich.
|
|
|
|
|
Hi All,
What are the differences between ordinary variables, references and pointer variables?
I need a description in this area.
Hope someone will help me soon.
TIA,
Jahfer
|
|
|
|
|
|
How can I implement this?
So far I have:
using namespace std;
typedef std::vector<std::vector<unsigned char=""> > USBVECTOR;
// Declare a dynamically allocated vector of QuickUSB Devices
USBVECTOR aDeviceChannel;
// Iterator is used to loop through the vector.
USBVECTOR::iterator iDeviceIterator;
So how can I make aDeviceChannel into a typical 2d array? Then how can I write data to each index in the array (like array[i][j] = blah)
Thanks
|
|
|
|
|
Try this technique...
<pre>// Array of arrays of ints
typedef vector<vector<int> > CMultiIntArray;
void TraceDynamicArray(const unsigned int rows, const unsigned int columns)
{
CMultiIntArray aTest;
// Allocate number of rows
aTest.resize( rows );
// For each row
for (int row = 0; row < aTest.size(); row++)
{
// Allocate number of columns
aTest[row].resize( columns );
// For each column
for (int column = 0; column < aTest[row].size(); column++)
{
// Assign a value
aTest [row] [column] = 10 * row + column;
// Trace it
cout << aTest [row] [column] << "\t";
}
cout << "\n";
}
}
// Example usage: Standard C++ Library version
int main(int argc, char* argv[])
{
TraceDynamicArray(3,5);
return 0;
}</pre>
Kevin
|
|
|
|
|
How can i terminate/release file handles acquired by one process from some other process?
Thanks in Anticipation
|
|
|
|
|
Is there is any way to attach a toolbar to an ActiveX control ?
|
|
|
|
|
Hello Anand,
I think this is not possible.
You can do it if your activeX control gives any method to attach a toolbar to this control window.
One more thing. I think you can develop your own control using the existing one(writing wrapper on the existing one) so that u can add the toolbar at the time of development.
Any way, I am not quite sure.
I hope these info will help you,
Jahfer
|
|
|
|
|
|
i added the toolbar .
but now i display a dialog box when double clicking on the activex control.
it work fine. but when i touch the title bar to move the dialog box it hangs.
please help me.
|
|
|
|
|
try a modeless dialog with no title bar (Why you move the dialog in your ActiveX? It is a place holder for other controls.)
http://blog.joycode.com/jiangsheng
http://blog.csdn.net/jiangsheng
Command what is yours
Conquer what is not
---Kane
|
|
|
|