|
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[^]!
|
|
|
|
|
Thanks Joaquín, your CP article looks interesting. I will DL the code and play with it to see if it fits my needs
"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!
|
|
|
|
|
a tought ...
if the strings are unique, make a map that points to ( a pointer to ) a structure containing a CWnd and a HTREEITEM
when you create the CWnd, attach the structure to the CWnd ( as a member of the class )
when you create the Tree Item, attach the structure to the Item ( CTreeCtrl::SetItemData )
when you click on the window, you can find exactly which item to highlight; and when you click on the tree item you have the pointer to the CWnd.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
I want to build a background service application, which means when the user start the application, it will just show an icon in the task bar. And of course user can double click the icon to configure the service setting.
So the issue is how to put it into the task bar...
|
|
|
|
|
It's a testament to how great this site is that when I do a google in response to people who ask questions that have obviously been answered a million times online before, the first[^] hit refers back to the Code Project.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
thanks so much,
sorry to repeat such an old question to bother...but anyway your link will make it easy for me to get to the right place~
^-^
|
|
|
|
|
It's no worry for me to answer you, it's more that to succeed as a developer, you need to do some research before asking questions
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Hi,
Sorry for this crosspost from WTL message board but I didn't get an answer there.
In my main frame I have a splitter pane with two views. I want to scroll the appropriate window when the mouse hovers over it. What is the best way to do this?
I was thinking of handling the WM_MOUSEWHEEL message and checking if the cursor is within the bounds of the view's rectangle (using GetCursorPos() and GetWindowRect()) but I think it might cause other problems.
I also tried using WM_MOUSEHOVER and WM_MOUSELEAVE but I am not sure how to best implement them.
Is there another way?
Thanks in advance.
|
|
|
|
|
What's the worry with GetCursorPos, etc ? That's how I'd expect to do it.
Christian Graus - Microsoft MVP - C++
|
|
|
|
|
Or watch for The WM_MOUSEMOVE message is posted to a window when the cursor moves. If the mouse is not captured, the message is posted to the window that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse.
You would get the mouse coordinates and some other state informiton. You can use PtInRect to see which part of the frames the mouse is in to decide which area to scroll.
|
|
|
|