|
Thanks. That's useful info.
Daniel Turini wrote:
IMHO, 3 weeks for such a project, for people who have no experience at all on it, is a shoot on your own foot.
I agree. He should blame his boss!
Kevin
|
|
|
|
|
hi,
i need to disable tray menu item form different dialog box.
can you help me?
|
|
|
|
|
What do you mean with "from a different dialog box"?
Just call EnableMenuItem(wndMyMenu, ID_MENUITEM, MF_DISABLED) ?
Rickard Andersson8
Here is my card, contact me later!
UIN: 50302279
E-Mail: nikado@pc.nu
Interests: C++, ADO, SQL, Winsock, 0s and 1s
|
|
|
|
|
BTW: You have to do this in WM_INITMENU
Rickard Andersson8
Here is my card, contact me later!
UIN: 50302279
E-Mail: nikado@pc.nu
Interests: C++, ADO, SQL, Winsock, 0s and 1s
|
|
|
|
|
Thank u Rickard.
Thank u very much for ur reply.
i already solved this problem.
|
|
|
|
|
hi,
can anyone tell me where to find some docuentation and/or examples on broadcast client/server communication in VC++?
thanx
|
|
|
|
|
Try Google?
Rickard Andersson8
Here is my card, contact me later!
UIN: 50302279
E-Mail: nikado@pc.nu
Interests: C++, ADO, SQL, Winsock, 0s and 1s
|
|
|
|
|
i've tryed but i found nothing about it...
|
|
|
|
|
3.8 - How do I send a broadcast packet?
With the UDP protocol you can send a packet so that all workstations on the network will see it. (TCP doesn't allow broadcasting.)
To send broadcast packets, you must first enable the SO_BROADCAST option with the setsockopt() function. Next you have to figure out the "directed broadcast" address, which means "send this packet to all stations on this LAN". To construct the directed broadcast address, use the following C code:
u_long host_addr = inet_addr("172.16.77.88"); // local IP addr
u_long net_mask = inet_addr("255.255.224.0"); // LAN netmask
u_long net_addr = host_addr & net_mask; // 172.16.64.0
u_long dir_bcast_addr = net_addr | (~net_mask); // 172.16.95.255
Potential Problems: Broadcasts can be useful at times, but keep in mind that this creates a load on all the machines on the network, even on machines that aren't listening for the packet. This is because the part of the stack that can reject the packet is several layers down. As a result, most routers drop simple broadcast packets, and sometimes even drop directed broadcasts to nearby networks. (A simple broadcast is one sent to address 255.255.255.255.) The practical upshot of this is that sometimes broadcasts won't work at all, and even when they do work they cause unnecessary loads on the network. To get around these problems, you may want to consider multicasting instead.
http://tangentsoft.net/wskfaq/intermediate.html#broadcast[^]
Rickard Andersson8
Here is my card, contact me later!
UIN: 50302279
E-Mail: nikado@pc.nu
Interests: C++, ADO, SQL, Winsock, 0s and 1s
|
|
|
|
|
i must use broadcast from project specifiation...
I use to routine to create Server socket:
As it is it runs wrong, i got an error calling listen, if i create a SOCK_STREAM instead of SOCK_DGRAM all goes well:
<br />
int passive_sock(int port, int qlen)<br />
{<br />
struct sockaddr_in sin;<br />
int s;<br />
int flag=1;<br />
int rv;<br />
<br />
memset((char *)&sin, 0, sizeof(sin));<br />
sin.sin_family = AF_INET;<br />
sin.sin_addr.s_addr =INADDR_ANY; <br />
sin.sin_port = htons(port);<br />
s = socket(AF_INET, SOCK_DGRAM, 0);<br />
rv=setsockopt(s,SOL_SOCKET,SO_BROADCAST,(char *)&flag,sizeof(flag));<br />
if (s<0) return -1;<br />
if (bind(s, (struct sockaddr *)&sin, sizeof(sin)) < 0) return -2;<br />
<br />
if (listen(s, qlen) < 0){<br />
return -3;<br />
printf("listen error");<br />
}<br />
return s;<br />
}<br />
This is the client-side:
<br />
server.sin_family=AF_INET;<br />
server.sin_addr.s_addr=INADDR_BROADCAST;<br />
server.sin_port = htons(port);<br />
<br />
opt=(char *)malloc(10);<br />
strcpy(opt,"TRUE");<br />
conn_socket = socket(PF_INET,SOCK_DGRAM,0); <br />
retval=setsockopt(conn_socket,SOL_SOCKET,SO_BROADCAST,(char *)&flag,sizeof(flag));<br />
connect(conn_socket,(struct sockaddr*)&server,sizeof(server);<br />
i've noticed that if i change from SOCK_DGRAM to SOCK_STREAM setsockopt returns -1 (error)..
The main problem is that client sends packet.. i think (sendto returns 4)
but server doesn't receive nothing.. maybe server-side is wrong..ù
What do you think 'bout it??
|
|
|
|
|
I want to write a ActiveX Combo box support Unicode.
But when subclassing COMBOBOX, my Unicode ComboBox don't
display correctly. The standart combobox can not sizing in
Horizontal direction, but my Combo can.
Any one can tell me why??
My Unicode ComboBox is build using MFC ActiveX Control Wizard, subclassing COMBOBOX.
Thanks a lot.
|
|
|
|
|
Hi
Sometimes, i have a listview which has about 6000 records in it. It can take a while before showing the entire list.
Does anyone know how to display a label message or a message 'List is loading .. Please wait' while the list is loading. When the list is shown, message should disappear.
Anyone knows a good article about solving this problem.
Best regards
Jens
|
|
|
|
|
There is an article here on CP that displays a small progress bar while a tree is populated. That might be of use.
However you would be better off either trying to improve the load time or using a load on demand technique with a virtual list box. I don't know where your 6000 records are coming from but one would like to think that loading them should be almost instantaneous. Users don't like to wait!
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
So you are looking for a status dialog or such?
I am using Chris Maunders excellent status dialog:
http://www.codeproject.com/miscctrl/progresswnd.asp[^]
To update dialog controls while processing a big amount of data you should always call a function "Peek And Pump" which processes dialog messages (for example allows the user to click the cancel button of a dialog, without PeekAndPump all controls would be frozen and not reacting).
With this dialog you also can show how many items you have processed already. If you don't need the progress bar, just hide it. Shouldn't be that hard.
Btw, if you are processing such a large amount of data you should perhaps consider using a virtual list view which is MUCH faster than the normal Windows list view:
http://www.codeguru.com/listview/VirtualListControl.html[^]
-Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
|
|
|
|
|
yeah i'm currently looking at the 'virtual list view'. I hope i can use it too because i have about 6 columns & all text in the cells.
I see the trick is to move all data in an array, and then when windows asks the text, just check which position (subitem) we are talking about & retrieve it from the array.
But i think i need to read more of this to understand it better.
Thanks for the good article. I'm sure it will be usefull.
Greetings
Jens
|
|
|
|
|
I assume you've already tried CListCtrl::SetItemCount() ?
|
|
|
|
|
Well it's hard to know at beforehand.
In my case there can be 5 customers at a little firm, but at another one there can be 60.000 or more customers.
Greetings
JensB
|
|
|
|
|
Why don't you use a virtual listview?
This basically means that you only need to load the records currently being displayed....
I don't know off hand of an article on CP for this, but there is documentation in the MSDN...
www.kinkycode.com
99 little bugs in the code, 99 little bugs,
Fix 1 bug, recompile....
101 little bugs in the code...
|
|
|
|
|
yeah i'm making my own project now with integration of 'virtual listviews'.
I've found some good articles on cp & codeguru that explain it pretty good
I like the idea of only loading what is necessary. Will greatly reduce the wait-time.
I'll let you know how much it went faster
Greetings
Jens
|
|
|
|
|
Sorry guys but I've never generated ZIP files to use in my applications and I was wandering if it's legal an free use them as a file format.
Have I to pay something if a zip file is generated or read from my app?
Best Regards
|
|
|
|
|
Hi
no, i think all formats are free to use.
but the programs who read the specific files like winzip etc, "must" be bought
Greets
Jens
|
|
|
|
|
Hi Jens
Just another thing.
If I'm using the Xzip class that can be found here in Codeproject, then all is free isn't it?
Best Regards
|
|
|
|
|
XZip is based on Info-Zips source codes... Read the header of the XUnzip.cpp file for their license. I think if you mention somewhere in your app that you use Info-Zips source codes and put the their license somewhere in the docs of your app it should be ok... (no guarantee, read the license yourself )
-Dominik
_outp(0x64, 0xAD);
and
__asm mov al, 0xAD __asm out 0x64, al
do the same... but what do they do??
|
|
|
|
|
Fastest way to search a std::vector for a value? .. string or number... whatver?
|
|
|
|
|
Tomas Wilhelmsson wrote:
Fastest way to search a std::vector for a value? .. string or number... whatver?
stl::find() probably. ( From < algorithm > )
You probably will not find faster than this one.
But maybe you need to revise your design to improve your performance?
You may need use something like hashing or sorting containers.
My opinions may have changed, but not the fact that I am right.
|
|
|
|