|
it's only a thread.
The program is only one to one, there are only 2 clients connected at a time.
Blake Miller wrote:
only allow the button down to assign a client to the list if no other client is using the list. And only respond to the button up if the client already owns the list.
how could i do that?
|
|
|
|
|
If you can not identify your clients, you will never sort this out.
Suppose you have a variable called PointListOwner, and you can assign PLO_NONE, PLO_CLIENT_ONE, or PLO_CLIENT_TWO, then initially you set it to PLO_NONE.
Then, when you get the button down message, you figure out which client the message came from and assign the variable that client's identifier (assuming no client currently owns the list). Then when another button down message comes in, if it is not client who owns the list, ignore it. When a button up message comes in, then if it is not client who owns it, ignore it. If the button up is the client who owns list, then draw the lines and then set the owner back to none, so the other client, or the same one, can own the list on the next button down.
Since you only have one thread, no mutex, criticalsection, etc. is going to help you with blocking access.
I don't knwo how your server is accepting the client messages, but you need to factor in a mechanism for the messages to be associated with each client.
|
|
|
|
|
that could be what i'm looking for.. i'll see about it. thanks
|
|
|
|
|
Hi,
I would like to update the display in the CSTestView if the OK botton on CParaDlg is pressed, how to initiate the update?
void CParaDlg::OnOK()
{
CString msg = "checked";
AfxMessageBox(msg);
CDialog::OnOK();
}
void CSTestView::OnDraw()
{
}
I will be very appreciated for whatever hint I received.
Regards
Nelson L.
|
|
|
|
|
If you are using Doc/View architecture, you should call method UpdateAllViews() from your document object.
example:
GetDocument()->UpdateAllViews();
regards
Rodrigo Pinho Pereira de Souza
|
|
|
|
|
If this is normal dialog, you may check if it's closed with OnOK
void CSTestView::YourCallingFunction()
{
if(YourDlg.DoModal()==IDOK)
{
}
}
|
|
|
|
|
Hi,
Could anyone provide an example to get SID (Security Identificator) of local computer ?
Yours sincerely,
Alex Bash
|
|
|
|
|
A SID uniquely identifies a user or a group (i.e., a trustee). What makes you think the computer itself has one?
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Hi there,
Can someone tell me how I can copy a file from one folder to another? I was told it was unwise to use the system() function because of security reasons.
Thanks!
|
|
|
|
|
|
Now why did I think it only works for Visual Basic? Thanks!
|
|
|
|
|
elephantstar wrote:
I was told it was unwise to use the system() function because of security reasons.
To say the least. It's also a holdover from the Unix days. Use CopyFile() as has already been mentioned, or SHFileOperation() .
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
|
Personally i dont like to use system() for anything
i would reccamend using the function CopyFile() http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/copyfile.asp or CopyFileEx() http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/copyfileex.asp
|
|
|
|
|
How to get rid of this warning?
conversion from 'long' to 'void *' of greater size
i have
void* d = (void*) pos;
'pos' is a long that has a value. After this, 'd' points to that address, it all works well but how can i get rid of the warning?
And since when is void* greater size than long? sizeof() says 4 bytes for both ((
|
|
|
|
|
Are you possibly doing:
long pos = 10;<br />
void* d = (void*)pos;
Instead of:
long pos = 10;<br />
void* d = (void*)&pos;
Bikram Singh
|
|
|
|
|
No, i dont want d to point to pos, i want it to point to the address stored in pos, in that case i would want d to point to address 10 in memory, my code is working as i like, but i cant get rid of warning
|
|
|
|
|
If you're sure of what you're doing, and just want to get rid of the warning, use the #pragma warning() directive.
Bikram Singh
|
|
|
|
|
I got it, it was the 64 bit portability warnings, i have to use LONG_PTR instead of longs to be ready for 64bit stuff
|
|
|
|
|
<font style="color:blue;">long </font>pos; <font style="color:green;">
<font style="color:blue;">void</font>* d = <font style="color:blue;">static_cast</font><<font style="color:blue;">void</font>*>(pos);
TOXCCT >>> GEII power
|
|
|
|
|
thats evil, the the compiler is telling you so. It almost works now, but it won't work (100% anyway) on 64 bit systems.
you shouldn't do
long pos = 10;
it should be
long *pos = (long *)10;
then you can do
void *d = pos;
which is legal.
If you can't change your code like the above, then the work around that others have come up with will work. Just make sure you comment why you had to do it incorrectly so I curse the idiot before you, and not you, when I come in two years from now to make the code 64 bit safe.
64 bit processors are coming. They have been around for more than 10 years, and are slowly making gains on the desktop. Already people are buying them and not knowing it. (though they are running a version of windows that doesn't support the 64 bit parts, eventially they will be running 64 bit windows and not know it)
|
|
|
|
|
Hello,
I'll try to explain what I'm trying to do:
On the about dialog of some programs there is
an email address (often underlined and typed in blue)
that is not a static text, because if you click on it,
a new outlook message
-directed to the desired address- is automatically opened.
How can this be done?
Thankyou in advance,
Marco.
|
|
|
|
|
Search for "hyperlink controls" here.
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
Hi,
I made a small project and draw a graph and write a few lines on the display using CScrollView, the scrollbar works when the text exceed the windows.
To work on the print preview, after adding the following, the print preview looks ok, but the display fails even when I move the thumb scroll bar.
void CReaderView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo)
{
if (pDC->IsPrinting())
{
int pageHeight = pDC->GetDeviceCaps(VERTRES);
int OriginY = pageHeight * (pInfo->m_nCurPage-1);
pDC->SetViewportOrg(0, -OriginY);
}
CView::OnPrepareDC(pDC, pInfo);
}
I tried to add a WM_VSCROLL, and change the ViewportOrg, seems not working.
I also found if I replace the last line with
CScrollView::OnPrepareDC(pDC, pInfo); the effect is reversed.
Anyone could give me some hints on this?
Thanks.
|
|
|
|
|
I have a VC++ application built in .NET that is generating some very odd errors. I have a call to FindWindow that gets the HWND for another application so that I can manipulate its display parameters. Normally this call works fine. However, when I run the application while recording events or playing them back from a tool called EventCorder, which has hooks for recording and playing back windows events, FindWindow fails. It returns a NULL, and GetLastError returns 126 ERROR_MOD_NOT_FOUND. EventCorder does not alter my path or other environment variables, as I have proven in debugging, so I do not understand why this module would not be found at runtime when EventCorder is running, but can be any other time. I would greatly appreciate any assistance anyone can provide with this very odd error.
|
|
|
|