|
This is completely doing my head in!
I've written some code which nearly works, but I can't quite sort out dragging/moving of my "splitters", in some cases it moves other splitters that it shouldn't, my structure is a tree.
It's got to the point now where I've convinced myself that my method isn't right and wont work. For what it's worth my docking interface mimics the ".NET" docking windows.
Does anybody have any information on what sort of structures I should be looking at and what specifically are the rules that "VS .NET" using for it's docking windows (i.e sizing the window).
It's real annoying that every implementation of this I've come across is MFC based (commercial or otherwise). I'm trying to give our product a new interface (which is straight 'C' API, not even C++).
I've been doing this in my spare time, but it's got to the point where I'm going to chuck it all away and start again. Any tips or info gratefully recieved.
Adrian
|
|
|
|
|
Is there another way to catch the ctrl-c combo other then signal(SIGTERM, func)? Thanks.
|
|
|
|
|
i have never heard of signal()
but you could use GetAsyncKeyState() and/or GetKeyState()
http://msdn.microsoft.com/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/getasynckeystate.asp
http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/UserInput/KeyboardInput/KeyboardInputReference/KeyboardInputFunctions/GetKeyState.asp
|
|
|
|
|
At some point during development, tool tips stopped working for the buttons on my tool bars. If the mouse is moved over a button, nothing happens. If the button is clicked then tooltip text does appear at the bottom of the window, as long as the button is held down.
May I ask if anyone has had a similar experience, and whether they have figured out the cause?
Any input appreciated.
Thanks.
|
|
|
|
|
Possibly your string identifiers do not correlate with the numeric values of the command identifiers for your tooltips any more.
I noticed this when I created the tooltip and string at same time, and later changed the actual value of the command ID, then the strings in the resource string table still had the OLD identifiers, I had to go in and change them manually to match the new command identifiers the tools were using.
|
|
|
|
|
I appreciate your feedback, but I have not changed the values of the identifiers.
Also, since the correct button description is displayed when the button is held down, it would appear that the association is correct.
The problem is related to the failure of mouse movement to invoke an appropriate function. When the mouse enters and leaves the "window" of the button, there are surely events that need to be processed, but are not.
Thanks
|
|
|
|
|
Did you inadvertently intercept messages anywhere in the message loop chain? There are some special functions for making this all work, if you are using MFC, such as
CWnd::FilterToolTipMessage
Called by the framework to display the tool tip message associated with a button on the toolbar.
void FilterToolTipMessage(MSG* pMsg);
Parameters
pMsg - A pointer to the tool tip message.
Remarks - It is normally called from PreTranslateMessage.
Call it when the framework does not call it for you.
See Also CWnd::OnToolHitTest
Maybe this got bypassed with your recent development efforts?
Just trying to help.
|
|
|
|
|
That is some good thinking.
I should have posted that I "solved" this problem.
First of all, it turned out that tooltips did appear every once in a while, maybe once out of 50 times that the cursor was moved over the button.
In an effort to solve the problem, I started getting earlier versions of my source code out of Source Safe, and each time, the tool tips worked.
Finally, I got to where there was a trivial difference between the "current" source and the source that did not work, a difference that could not matter, it seemed to me.
Let me mention here that I did "rebuild all"s on the "current" version, which did not help.
Finally, I checked out the current version of the code to a fresh directory. In other words, I checked out code identical to the source code which exhibited the problem. When I built the project, tool tips worked!
I will say that I do not check in .dsw, .clw, or any of the "project" files, other than .dsp (well, .rc and resource.h are checked in, of course).
I simply do not know. It seems so odd to me. I never did try deleting all the files from the "debug" or "release" folders, rather than just doing a rebuild all.
Perhaps it was evil electrons.
|
|
|
|
|
Hi,
I have an application in MFC. When a CButton is created in a dialog, its OnBnClicked... function is called properly when the check box (of type CButton) is clicked. However, when in the code I calll SetParent() of the CButton and set its parent to another window (so that it can take the Tab stops from another dialog) then the OnBnClicked... function is no longer called!!
It seems to be happening only for CButton. Event handlers for CCheckList and CEdit work perfectly even after changing their parents.
Any thoughts? Please let me know ASAP.
Thanks.
|
|
|
|
|
I'm using the following simple code to write to the registry, but for some reason I'm getting non-printable characters in the registry:
<br />
class CRegKey* rc = new CRegKey(HKEY_LOCAL_MACHINE);<br />
<br />
rc->Open(HKEY_LOCAL_MACHINE,"Path\\to\\key");<br />
rc->SetStringValue("Name","CMS Document and Media Server");<br />
rc->Close();<br />
delete rc;<br />
What shows up in the registry follows:
CMS Document|and|Media Server
Both the |'s are actually non-printable characters. Any ideas about what's going on?
Thanks.
--Kaleb
|
|
|
|
|
This must be a .Net or VS7 thing as VS6 has no CRegKey class with such a constructor or a SetStringValue() method. Yes?
BTW, the use of new and delete here is unnecessary. This will work just fine:
CRegKey rc(HKEY_LOCAL_MACHINE);
rc.Open(HKEY_LOCAL_MACHINE, "Path\\to\\key");
rc.SetStringValue("Name", "CMS Document and Media Server");
rc.Close(); assuming the original problem goes away.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
I found the problem. It appears to be a bug or undocumented feature.
I actually have 200+ registry entries that were being written. It turns out that I had two that were writing out the exact same name and value in the same key, before my CRegKey was closed and written to disk. Apparently, that caused some sort of undefined behavior. Go figure!
In terms of new/delete, yeah, force of habit.
Thanks.
--Kaleb
|
|
|
|
|
I need the MainFrame to display just a minimize button ,
I thought this shld be done in the PreCreateWindow Call
But how do i set the styles ?
cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;
cs.style&=WS_MAXIMIZEBOX ;
// what is the ID for the CLOSE button ?
Please help
Thanks
|
|
|
|
|
// first, add the Minimize style ..
cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER | WS_MINIMIZEBOX;
// .. then disable the Maximize style, DON'T forget the '~' operator!
cs.style &= ~WS_MAXIMIZEBOX ;
// Disable the Close button,
//do it somewhere in OnInitialUpdate of the main view
HMENU hSysMenu = ::GetSystemMenu(AfxGetMainWnd()->m_hWnd, FALSE);
::EnableMenuItem (hSysMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED);
|
|
|
|
|
Thanks , Sorry about forgetting the ~ for the MAXIMIZEBOX
your solution kinda solves what I need , but is there a way where I can eliminate the Maximize and the Close buttons from being even shown . They seemed to be grayed right at the moment !
There ware people who are smart but cant get the job done , and there are people who arent smart but get the Job done. We dont need both types of people !
|
|
|
|
|
One solution is SC_CLOSE. Also, in your code, negate WS_MAXIMIZEBOX.
cs.style &= ~WS_MAXIMIZEBOX;
Kuphryn
|
|
|
|
|
Using stroul gives me a wrong result. I had an _int64 value which I put into a string as a hex value and now I want to get it back again. I did:
unsigned __int64 alg_mask = strtoul (alg_str, (char **) NULL, 0);
which is not giving me back the right value I suppose because its string-to-long. How can I get this value out?
thanks,
sb
I put it in as
alg_str 0xf00000000
and my stroul gives me:
alg_mask 4294967295 which is FFFFFFFF
when actually I should be getting 64424509440.
|
|
|
|
|
Try using _strtoi64 or _wcstoi64
Ant.
I'm hard, yet soft. I'm coloured, yet clear. I'm fruity and sweet. I'm jelly, what am I? Muse on it further, I shall return! - David Williams (Little Britain)
|
|
|
|
|
Thanks. Will check it out.
sb
|
|
|
|
|
I'm on win2k and I do have stdlib included but I get strtoi64 is undeclared identifier. Another odd thing is that it didnt come up in the help....instead I found it at the microsoft site. Its vc6.
thanks.
sb
|
|
|
|
|
ns wrote:
strtoul (alg_str, (char **) NULL, 0);
strtoul (alg_str, (char **) NULL, 16);
Papa
while (TRUE)
Papa.WillLove ( Bebe ) ;
|
|
|
|
|
Ah Thanks! I will try it!
sb
|
|
|
|
|
I wantto create a project to fill a text box of any given site Eg. Google's search text box. so tell me how can i create this, if possible please send a sample programm to me by mail.
Anurag
anu
|
|
|
|
|
Anurag Khare wrote:
I wantto create a project to fill a text box of any given site
I'm unclear as to what you want in the text box.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
( one of those friday "Duh" question ... )
I have a populated tree control, items are inserted in each sub-tree as they are read from the "dataset"; and are not sorted alphabetically.
I want to sort the items, so I use CTreeCtrl::SortChildren ( or the other one with the user defined sort callback ); which is working fine.
The question really, is, Can I "unsort" the items without reloading the tree ( or subtree ) ?
I would say no at first, but we never know ...
Thanks.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|