|
put your "background process" in a worker thread. Then your main (UI) thread is free to redraw the screen.
Signature space for rent. Apply Within.
|
|
|
|
|
Could u please post a code snippet of that.
Samir Sood
|
|
|
|
|
Or put your progress dialog in its own thread. Either way will work.
Todd Smith
|
|
|
|
|
Hi..
I know two ways to do so:
The first:
to pass a handle of a progress bar to the worker thread and use it as follows
1. Create a helper class that will hold data passed to the worker thread:
<br />
class CData<br />
{<br />
HWND m_hWnd;<br />
}<br />
2. In the dialog class create a member variable of type CData:
private:
CData MyData;
3. Before the call to AfxBeginThread() fill members of CData :
<br />
{<br />
MyData.m_hWnd=(GetDlgItem(IDC_PROGRESS))->m_hWnd;
<br />
is the ID of the progress bar..<br />
<br />
AfxBeginThread(WorkerFn,&MyData, );<br />
}<br />
4. In the Worker thread function write the following code:
<br />
UINT WorkerFn(LPVOID pData)<br />
{<br />
CData* data=(CData*)pData;<br />
CProgressCtrl* progBar=CWnd::FromHandle(data->m_hWnd);<br />
<br />
progBar->SetRange(0,100);<br />
<br />
}<br />
The second:
Pass the handle of the dialog enstead of the progress bar then use:
<br />
::PostMessage(data->m_hWnd,WM_USER+1,0,0)<br />
and handle the message in the dialog..
Send again if you find any problems..
|
|
|
|
|
Multithreaded apps are simplest if only the main thread deals with drawing the UI, as in your second solution. There is, however, no need to introduce a new message handler in your dialog. Just have the worker thread post a messages directly to the progress control:
Before starting the worker thread, save the window handle of the progress control in a variable that will be accessible to the worker thread (e.g. m_hProgressCtrl ). Then in your worker thread code, post messages to update the progress control directly
<br />
::PostMessage (m_hProgressCtrl, PBM_SETRANGE, 0, MAKELPARAM (min, max));<br />
::PostMessage (m_hProgressCtrl, PBM_SETPOS, position, 0);<br />
Using ::PostMessage() (instead of the ::SendMessage() inside the CProgressBar member functions) means that the messages to update the progress controls will be queued for the main GUI thread.
Stephen C. Steel
Kerr Vayne Systems Ltd.
|
|
|
|
|
Hi,
I want to write a driver for a USB Cam? and waht to learn what must I need to know to write a driver that will work on Windows 2000 and intereact with a USB device. or is there any generic usb driver that can give me data acquire.
karanba
|
|
|
|
|
It's not easy. Read about the DDK in MSDN.
Signature space for rent. Apply Within.
|
|
|
|
|
I have socket server and i would want to know,
how to print client sockets address to screen.
Is there so function, that makes it to
normal ip address form (e.x 120.1.1.2)
|
|
|
|
|
getpeername(...)
Rickard Andersson@Suza Computing
ICQ#: 50302279 (Add me!)
E-mail: nikado@pc.nu
I'm from the winter country SWEDEN!
|
|
|
|
|
inet_ntoa(from.sin_addr)
Nish
p.s. from is a sockaddr_in
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
inet_ntoa() will convert a struct in_addr into dotted number string format.
|
|
|
|
|
It goes like this :
if((new_fd = accept(sockfd, (struct sockaddr *)&their_addr, &sin_size)) == -1)
{
perror("accept");
}
printf("server: got connection from %s\n", inet_ntoa(their_addr.sin_addr));
The remote adrese is returned by the secondn parameter of 'accept' function
Bye,
Orbital^
...the night is long ... but not long enought to do some real coding ...
|
|
|
|
|
|
It's there someone that know how can I compile a program that uses STL on an LINUX system ( I have gcc 2.96 and it seams that it never heard about STL )
Bye,
Orbital^
...the night is long ... but not long enought to do some real coding ...
|
|
|
|
|
If your compiler is so out of date as to not provide STL, try www.stlport.com, they may have a version compatile with your (non-C++) compiler.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
And you don't spend much time with the opposite sex working day and night, unless the pizza delivery person happens to be young, cute, single and female. I can assure you, I've consumed more than a programmer's allotment of pizza, and these conditions have never aligned. - Christopher Duncan - 18/04/2002
|
|
|
|
|
Invoke the compiler as g++ instead of gcc. Make sure you have the gcc-c++ and libstdc++-devel packages installed.
|
|
|
|
|
Thanx a lot man ... the g++ work ... but can you tel me the diference betwen gcc and g++??
Bye,
Orbital^
...the night is long ... but not long enought to do some real coding ...
|
|
|
|
|
gcc is the GNU C compiler
g++ is the GNU C++ compiler
stl is C++ and not C
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
I've compiled with gcc programs in C++ ... but it seams that gcc dosen't know templates
Bye,
Orbital^
...the night is long ... but not long enought to do some real coding ...
|
|
|
|
|
Orbital^ wrote:
I've compiled with gcc programs in C++ ... but it seams that gcc dosen't know templates
I just checked out the man pages. Apparently they are eboth same except for this difference :-
gcc assumes preprocessed (.i) files are C and assumes C
style linking.
g++ assumes preprocessed (.i) files are C++ and assumes
C++ style linking.
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
When you compile and link with g++, you get the C++ libraries linked in as default. If you use ld or gcc, you must manually include the C++ libraries.
|
|
|
|
|
Hi,
I´m taking a look at CComControlBase::IDataObject_GetData
and... it uses the old Metafile 16 Bits !, it doesn´t use Enhanced Metafiles ( the standard for Win 9x, NT, 200, XP...).
Why ?????, legacy sh*t ? for what ?
|
|
|
|
|
i would like to know if there is any help in the remote desktop sharing in visual c++ .
Work Hard and Test your Luck
|
|
|
|
|
i want to my server application in background without concering who is logon to machine. how can i make it
Work Hard and Test your Luck
|
|
|
|
|
If you are using an OS that's based on NT you can make it a service and install it ... on an Win9x system you can make the an aplication that have no visible window ( the WS_SHOW style of the main window is not set ) and put that aplication in 'StartUp'
Bye,
Orbital^
...the night is long ... but not long enought to do some real coding ...
|
|
|
|