|
Hii alll
how can i change the background of my form????in vc++
thanks
|
|
|
|
|
You can read up on WM_CTLCOLORDLG[^] or you can set it when you register the window class.
Alex Korchemniy
|
|
|
|
|
Look in the CFrame, CMDIFrame, CView, or a class derived from one of these, for some methods to do this. Those classes perform the drawing of the windows and their background. There may be some public members that can be directly set also. My personal guess is a CFrame derived class. I don't remember completely, but you may have to use some API functions to get the pointers to the objects that would need to be changed.
The form background should not be in the App class or the Doc class, since these have to do with running the program and storing the data. I know this does not provide all the answer, but just gives somewhere to start.
David Spain, C++ Applications Programmer
|
|
|
|
|
Hi,
I want add a context menu on a tree (hosted in MFC Dialog), everything wotrk fine unless I do not get the menu draw (only a little strip).
So what's wrong in my code :
CMenu menu;
POINT pp;
GetCursorPos(&pp);
if (menu.LoadMenu(IDR_MENU_TREE))
{
menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
pp.x, pp.y,
AfxGetMainWnd()); // use main window for cmds
}
Thanks in advance ...
|
|
|
|
|
You are trying to show a top-level menu as a popup menu which is not possible.
You will need to get a submenu of IDR_MENU_TREE, like this:
menu.LoadMenu(IDR_MENU_TREE);
CMenu* pSubMenu = menu.GetSubmenu(0);
if (pSubMenu != NULL)
{
pSubMenu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
pp.x, pp.y, AfxGetMainWnd());
}
Hope this helps
|
|
|
|
|
hello,
i need to know steps to create a modeless dialog box in a parent SDI application.I know that a CreateDialog function is to be used;but how?
please guide
thanks
|
|
|
|
|
m_pDlg = new CMyDialog;
m_pDlg->Create (IDD_MYDIALOG);
m_pDlg->ShowWindow (SW_SHOW);
Note:Modeless dialog boxes are dismissed by calling DestroyWindow, not End-Dialog. You mustn't allow CDialog::OnOK or CDialog::OnCancel to be called on a modeless dialog box, because both call EndDialog.
Also create it on the heap always.
suhredayan There is no spoon.
|
|
|
|
|
It is a little long to explain how to use moldeless dialogs so I'll point you to an article: here[^] is a good article that explains the basis of modeless dialogs.
And, BTW, what do you mean by 'dialog box in a parent SDI application' ? The difference between modal and modeless dialogs is just that the dialog isn't 'blocking' (that means the parent window will still be active with a modeless dialog). The modeless dialog is not 'embedded' in the parent window.
|
|
|
|
|
cedric moonen wrote:
And, BTW, what do you mean by 'dialog box in a parent SDI application' ?
I think the second parameter below was meant by the parent.
explicit CDialog(
LPCTSTR lpszTemplateName,
CWnd* pParentWnd = NULL
);
suhredayan There is no spoon.
|
|
|
|
|
Yes of course I know that you can set a parent to a modeless dialog but I think what he really wants to do (as seen also in his previous post) is a dialog which is 'included' in the parent. So, that is a dialog that has no title bar and that is pasted on the parent. But I'm not sure so that's why I asked for some details.
|
|
|
|
|
thanks,
i was successful in creating a modeless dialog box.But i am still not able to use the Ondestroy() function.Kindly tell me the same.As you said that modeless dialog can't be opened in mdi window(which is exactly what i was trying).Then it means we will have to display it as child window.The properties section of dialog editor offers similar option.Is it correct?
thanks
|
|
|
|
|
Hello!
I need to show CPropertySheet object with not first page opened.
SetActivePage in OnInitDialog doesn't work. Can anybody help?
Oleg Chebotar
|
|
|
|
|
Why doesn't SetActivePage() work? It is what I call from the propertysheet's OnInitDialog() function and it works fine for me. I just make sure it is the last thing called in OnInitDialog() before it returns.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" - mYkel - 21 Jun '04
"There's not enough blatant self-congratulatory backslapping in the world today..." - HumblePie - 21 Jun '05
Within you lies the power for good - Use it!
|
|
|
|
|
I have declared the following in my application.
CMap<cstring,lpcstr,cwnd*,cwnd*> m_map;
I have a windows explorer like setup.
When i click a node in the tree i need to display an MDI Window.
So i have mapped the node item's text (LPCSTR) to that of the window pointer .So when i click a node i use CMap to get the window pointer and display the window.
Now when i alternatively click the windows i get the window pointer and i want to correspondingly shift the focus on the tree items.
So my question is how do i look up the key ( i.e LPCSTR) when i have the value (i.e.. CWnd*).
laiju
|
|
|
|
|
I have declared the following in my application.
"CMap < CString,LPCSTR,CWnd*,CWnd* > m_map"
I have a windows explorer like setup.
When i click a node in the tree i need to display an MDI Window.
So i have mapped the node item's text (LPCSTR) to that of the window pointer .So when i click a node i use CMap to get the window pointer and display the window.
Now when i alternatively click the windows i get the window pointer and i want to correspondingly shift the focus on the tree items.
So my question is how do i look up the key ( i.e LPCSTR) when i have the value (i.e.. CWnd*).
.
laiju
|
|
|
|
|
Is there any reason you're using CMap instead of map, in the C++ standard library ? CMap, CList, CArray,etc. were all written only as a stopgap until the stl came online. They are really crappy in comparison.
You need to build a second map that goes the other way. Even if you iterate through the keys collection, checking for the value ( which is a very lousy thing to have to do ), there's no guarentee that your value appears only once, so there's no guarentee you'll find the right key.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
You'll need to iterate through all keys and check if each key's value matches the CWnd* you're searching for.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
But that only works if each CWnd is only in there once. And it's damn ugly.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
True. What he really needs is a multimap.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Does multimap let you search the values ?
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Sorry, I meant a bi-directional map, not a multi-map.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
I have used map and multimap , and read about but never used hash_map and hash_multimap . What exactly do you mean by a bi-directional map? I always thought bi-directional containers were containers that had both forward and reverse iterators, but that definition does not seem to be what is being discussed here. What I think you mean is a map where both the key and value are unique, and has a find() member that can find either the key or the value. Is there such a beast? If so what is it called and where can I get it?
Currently I am just using a map for this functionality, I check to make sure the value is unique before I add a new value to the map, and I sequentially iterate the map, comparing values, until I find the keyvalue I am looking for. If there is a better implementation out there I would be interested in learning about it.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" - mYkel - 21 Jun '04
"There's not enough blatant self-congratulatory backslapping in the world today..." - HumblePie - 21 Jun '05
Within you lies the power for good - Use it!
|
|
|
|
|
PJ Arends wrote:
What I think you mean is a map where both the key and value are unique, and has a find() member that can find either the key or the value.
Yes, exactly.
PJ Arends wrote:
If so what is it called and where can I get it?
I don't know. I'm tempted to write one, but I doubt I'll come up with anything revolutionary (i.e. very efficient). A hashmap of pairs, with uniqueness enforced on values is what comes to mind.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Thanks Ravi. I thought you were refering to an already existing implementation that I did not know about. I guess I have to stick to my home-brewed hack.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" - mYkel - 21 Jun '04
"There's not enough blatant self-congratulatory backslapping in the world today..." - HumblePie - 21 Jun '05
Within you lies the power for good - Use it!
|
|
|
|
|
An off-the-sheld bidirectional map is provided here[^]; unfortunately, it doesn't work with MSVC 7.1. For a more comprehensive solution, allow me to suggest you take a look at the Boost Multi-index Containers Library[^], which enables the construction of bidirectional maps and more.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
Want a Boost forum in Code Project? Vote here[^]!
|
|
|
|