|
I am inexperienced with Spy++, and I have searched the MSDN site and read and re-read the Help Docs that come with Visual C++, and, I cannot get the the message log to save to a log file. I suspect that I am doing something incredibly dumb, something that would be obvious to some of you more experienced coders. Also, when operating Spy++, I get what appear to be spurious messages (I have the Introductory Edition, so maybe this normal). Anyway,...
I launch Spy++, click on windows (from the menu) and select a window, then select messages, at which point I get a popup message box telling me that some other process is logging the messages in that window. If I move the cursor into the selected window, the log starts and I get a rapid-fire list of cursor and hit test messages (these are actually the correct mesasages). Then I select Options and the Output tab I check the save log to file (or something like that), and provide a path, and check OK. The file always shows up at the location specified but empty, and sometimes I get an invalid log file message (and sometimes I don't). I searched for information on what a valid file type would be and came up with nada. I am typing in a typical pathname, like "C:\Folder Name\File Name.ext" (without the quotes). Would this be a log or text file, or does it even matter?
Do any of you people use this feature? If so, how does it work? I would appreciate any useful information. Thanks.
|
|
|
|
|
Try start spying on a window. Press F8 (Stop Logging). Then go to options and fill in a filename. The Start Logging again. That's the only way I got it to work.
|
|
|
|
|
Mike Nordell,
You know, I did accidentally get it to work one time, and I couldn't figure out what I had done. I'll bet that was it, because I did start and stop the logging several times trying to determine what was what. Thanks for that clue, I was ready to kill (an innocent bystander) in frustration.
It didn't seem intuitive or even logical, that it should be necessary to stop and then start spying again,...and you would think they could include that in their Help.
|
|
|
|
|
I have moved my project around as it needs to run on several machines. It works fine, but I have one problem that is a bit annyoing.
When I modify a file the updates aren't recongnized right away and when they are recongnized I get a message stating that the file was modified outside the project. How can I fix this? I was thinking just deleted the project and build a new one?
Any ideas?
|
|
|
|
|
Check the clocks of the machines. Most likely some of them are delayed by a significant amount of time (or the original one has somehow been boosted into the future).
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Doesn't seem to be the problem. Weird thing is it doesn't happen with all the files. Hmm?
|
|
|
|
|
Next thing to do is check the offending files' last modified date (it smells horribly like a date problem ).
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
I'm going to try and set the dates on all the files and I'll let you know.
Thanks for the help,
Jim
|
|
|
|
|
I am developing the Print Preview for my application and I want to have certain portions of the text writeen in Bold letters . I use the pDC Object of the OnPrint function . Please help
|
|
|
|
|
Something like this:
HFONT hFont=(HFONT)GetCurrentObject(*pDC,OBJ_FONT);
ASSERT(hFont);
LOGFONT LF;
VERIFY(CFont::FromHandle(hFont)->GetLogFont(&LF));
LF.lfWeight=FW_BOLD;
CFont BoldFont;
VERIFY(BoldFont.CreateFontIndirect(&LF));
CFont* pOldFont=pDC->SelectFont(&BoldFont);
pDC->SelectObject(pOldFont);
BoldFont.DeleteObject();
|
|
|
|
|
i do not Find a Method as SelectFont and is not listed in the Class member Listing for CDC ?
|
|
|
|
|
Sorry, yeah.. I was typing in anew... you gotta debug it.
That should be SelectObject.
|
|
|
|
|
Some code like this will work (I think):
OnPrint(...)
{
...
if(portion in bold){
LOGFONT lf;
pDC->GetCurrentFont()->GetLogFont(&lf);
lf.lfWeight=FW_BOLD;
CFont font;
font.CreateFontIndirect(&lf);
CFont * pFontOld=pDC->SelectObject(&font);
pDC->SelectObject(pFontOld);
}
}
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Thanks for the help. I find that the Text Gets Shrunk rather than Get Bold ?
|
|
|
|
|
??? Sure you're changing the weight and not the width? Don't know, try playing with the various params of LOGFONT .
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Here's the situation:
I have a program that runs in the system tray, and I want to be able to open a Dialog that sits on top and has focus over all programs currently running (kind of like a system message from Windows). Since DoModal does not accomplish this, is there something else I can do? Thanks.
Todd
|
|
|
|
|
One solution is to override the event handler for ON_KILLFOCUS. Call SetFocus().
Kuphryn
|
|
|
|
|
Did you really mean the focus? (where keyboard input is sent)
Or are you looking to make the window topmost, activated and
prevent activation of other windows until yours is dismissed?
(handling WM_ACTIVATEAPP and using AttachThreadInput and
SetForegroundWindow to reassume the foreground if the user
tries to switch to another window. ick )
|
|
|
|
|
Yes, I am looking to make the window topmost, activated and
prevent activation of other windows until mine is dismissed. I didn't mean keyboard focus. Sorry.
|
|
|
|
|
Hey All,
I have a SDI application.
Using the default print and preview messages (ID_FILE_PRINT & ID_FILE_PREVIEW) I am able to successfully Print and Preview my document.
I have a problem though...
When my application is in Preview Mode and I try to close the Preview window by clicking 'x' in the system menu (upper right hand corner) instead of using the 'close' button in the preview window, my entire application closes. I don't desire that. I just want to get my preview window closed. Any suggestions?? (It works fine by using the 'close' button)
Thanks,
-Mahesh Shimpi
Ideas multiply by sharing!!
|
|
|
|
|
Hello,
I am having a little problems with sockets.. Heres a break down.. I have a server application running on two machines.. The servers send and receive each others status every 60 seconds..
Both servers are listening.. One server will spawn a UI thread and do a connect. If the connect is successful it sends it's own status (like.. "ON_LINE") after it sends it's status, the other server receiving the status turns around and sends it's status through the same socket..
This all works fine except I don't know how to close the socket with out leaving a TIME_WAIT behind.. (I am using sysinternals TCPView to view my end points).. I have tried to issue a shutdown(s,SD_SEND) after my sends then after a FD_READ i do a shutdown(s, SD_RECEIVE) but no matter what I do I allways see a TIME_WAIT hanging around for a few minutes.. I'm not really sure if this is a bad thing but I plan on running this software on quite a few pc's and if these TIME_WAITS are using up resources I could have a big problem..
Any ideas?
Thanks!!
Rob
|
|
|
|
|
Consider Shutdown(). Another solution is to set the LINGER structure to 0 and use setsockopt() to instruct the socket to close immediately.
Kuphryn
|
|
|
|
|
Thanks for the reply.. I have been trying to use the SO_LINGER but it doesn't seem to be working.. here's what I'm trying..
First create.. then
linger m_linger;
m_linger.l_onoff = 1; // Turn linger on
m_linger.l_linger = 0; // Set time to ZERO
s.SetSockOpt(SO_LINGER, &m_linger, sizeof(m_linger),SOL_SOCKET);
This isn't working, am I doing this wrong?
Thanks,
Rob
|
|
|
|
|
No. Your solution looks okay. What happens when you set the time to greater than 0?
Kuphryn
|
|
|
|
|
I think I found the problem.. I was using API then I switched to using CAsyncSocket then to CSocket.. Just found out that SO_LINGER doesnt work with CSocket so I'm going to go back to either CAsync or straight API (if thats what you call it)..
Any way .. Thanks,
Rob
|
|
|
|