|
with each project compiling into it's own .exe, .dll, etc?
We have a fairly large code base in c++/win32 api, but would like to take advantage of the features in c# without porting all or code (currently compiled into a single .exe) to c#.
Thank You
|
|
|
|
|
I'm trying to use a list box to add strings to let the user know the progress of the function being executed.
So I've added a string before the function and one after (start/complete), but both strings don't update to the box until after the function is completed.
How can I get these message to update in a timely fashion?
Thanks for the help
|
|
|
|
|
Your "processing" loop is not yielding enough CPU time such that the WM_PAINT messages can be processed. In other words, you've got something like:
while (some_condition)
{
do some processing
update listbox
}
This is a prime candidate for a UI thread (i.e., thread with message pump). In your app's primary thread will be the listbox. When processing starts, create another thread to handle the processing. That thread will post (not send) messages back to the primary thread with items to be added to the listbox.
Check out these articles:
http://flounder.com/uithreads.htm
http://flounder.com/workerthreads.htm
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Hi, Is there a way to open a notepad file in a edit box?
Some code examples would be of great help for me
thanks,
Deepak Samuel
|
|
|
|
|
I assume you mean "open a text file." Typically, .TXT files are associated with Notepad, but that is not always the case. So to say something is a Notepad file is meaningless at best.
If you are not using MFC, try something like:
HANDLE hFile = CreateFile(...);
if (INVALID_HANDLE_VALUE != hFile)
{
DWORD dwSize;
GetFileSize(hFile, &dwSize);
char *Buffer;
Buffer = new char[dwSize];
ReadFile(hFile, Buffer, dwSize, ...);
CloseHandle(hFile);
SendMessage(hWnd, EM_SETTEXT, 0, Buffer);
}
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Thanks for your reply,
What should I do if I use MFC
Regards,
Deepak Samuel
|
|
|
|
|
CFile file(...);
DWORD dwSize = file.GetLength();
char *Buffer;
Buffer = new char[dwSize];
file.Read(Buffer, dwSize);
file.Close();
edit.SetWindowText(Buffer);
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
You also need to make that the receiving window will delete Buffer.
And to use TCHARs instead of chars.
The kindest thing you can do for a stupid person, and for the gene pool, is to let him expire of his own dumb choices.
[Roger Wright on stupid people]
We're like private member functions
[John Theal on R&D]
We're figuring out the parent thing as we go though. Kinda like setting up Linux for the first time ya' know...
[Nitron]
|
|
|
|
|
Hi I have small problem with edit box.
my code snippet is given below
exdefvalues.Format(" Hytec at %d\n, Telefunken at %d\n, Left Scaler at %d\n, Right Scaler at %d\n, Base : %d ms\n, Divider : %d, Microcycles : %d\n",hytec,telefunken,leftscaler,rightscaler,Base, Divider,microcycles);
pEdit->SetWindowText(exdefvalues);
I include the "\n" to get the next part in the next line but I dont get it ,it continues on the same line in the edit box..
Any Remedies?
Thanks
Deepak Samuel
|
|
|
|
|
|
Also make sure that the control has the ES_MULTILINE style.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
I write small SWF-player. When I parse a SWF format,I need to do the bitwise shift the buffer of
variable lenght of bytes - 8,9... etc, so I can't use common bitwise
shift operators (<< and >>). How I can do this?
Thanks a lot!
Slava Archibasoff
3admin@rambler.ru
|
|
|
|
|
I don't understand the dilemma. You want to shift a certain number of bytes but cannot use << and >> to do so. Why?
buffer << 8;
buffer << 24;
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Well, this is may be problem with my English.
The task is like this:
I have buffer:
byte*buffer=new byte[n];
If I'll write
*buffer << 1,
I'll get only first byte of the buffer ( buffer[0] ) shifted.
The question is - how to shift buffer of variable lenght of bytes on
some bits?
Thanks.
|
|
|
|
|
Slava Archibasov wrote:
*buffer << 1,
I'll get only first byte of the buffer ( buffer[0] ) shifted.
Right, that's what it is supposed to do. I get the impression that what you really want to use is strcpy() or memcpy() to do the "shifting." For example:
byte *buffer = new byte[16];
strcpy(buffer, "Apple");
cout << buffer << endl;
memcpy(&buffer[1], &buffer[0], 5);
cout << buffer << endl;
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Ok, You show how to shift the buffer on one byte ( 8 bits) to the right.
I need to get shifted the whole buffer ( byte *buffer = new byte[16] ) on
one BIT to the right. That's the question.
Thanks
Slava Archibasov
3admin@rambler.ru
|
|
|
|
|
I need to get shifted the whole buffer...
Look closer. All five bytes (the third parameter to memcpy() ) of the buffer were shifted to the right.
...one BIT to the right.
Which bit of which byte are you interested in? The buffer is comprised of several bytes (16 in my example), each of which has 8 bits.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
I have a DBTIMESTAMP variable representing a modification0date of a file.
The value isn't hte same as what explorer shows, most likely because it's measured in GMT or something like that.
How can I ask Windows to apply my Time-Zone/DST settings on this date variable ?
thanks
|
|
|
|
|
Hi,
Which method I have to use for move from an edit box and another with enter botton?
Thanks.
|
|
|
|
|
Hi,
for this edit box you have to catch the WM_GETDLGCODE message, telling it that you want DLGC_WANTALLKEYS.
In your WM_KEYUP handler you must look if the user pressed the enter key and than act accordingly. In any other case you should do the default action.
Regards
G. Steudtel
|
|
|
|
|
Hello,
This is my problem:
I have a list box which is used to select a certain item via double-click. This item can then be placed on a map. The problem is, while placing the item, the mousewheel has functionality within the program other than scrolling the list box. I need this mousewheel functionality to work, but once the item in the list box is selected, the focus stays on the list box and the mousewheel will only scroll the list and not do what I want it to do within the main program window.
If I could just move the focus from the list box to some other button, or remove it entirely, (without actually clicking on another list or button) the problem should be solved.
I have tried:
SendMessage(list_box,LBN_KILLFOCUS,0,0);
SendMessage(list_box,WM_KILLFOCUS,0,0);
where list_box is the handle of my list box, but, both of those KILLFOCUS messages are returns rather than messages that can be sent to the handle and processed.
I just need some way to get the focus off of the darned list box...
Thanks for your help,
Kelly
|
|
|
|
|
i was in your case before.
i did lots test, result is: no way to do that.
my solution is: create a Static control (Static has no focus on), then draw strings on the control - it is quite hard because you need to draw scroll-bar also.
when user click the static control, you know which string is selected, then do something according to the string.
but, maybe someone knows easy solution, i hope see it via your post.
includeh10
|
|
|
|
|
Hi,
I once had a similiar problem within a tree control. My solution was to make a boolean variable (bDoubleClicked) which was initially set to false. When the user double clicked an item I just set this variable to true and remembered what he/she choosed.
My actual action was taken on the mouse button up message. By looking if the user had double clicked I performed the task. In any case bDoubleClicked was set to false again.
The problem was that the mouse action was bound to the tree control and not released until the button up message arrived to that control.
I think you should use this method for your problem too.
Hope this helps.
Regards
G. Steudtel
|
|
|
|
|
Thank you for the suggestion, but I think it probably won't work - the problem is, once the mouse clicks onto the list box, that's it, the focus is now on the list box. I need some way to remove the focus from the list box. Regardless of what variables I use to save position and such, once the mouse clicks even once on the list box, that's it, problem activated.
I'd really rather not manually write a list box, I've done that in other portions of the code that involve larger bitmaps and such and it's a pain to always keep track of where they are in relation to the larger window etc, if I'm going to do that I'll just throw in an extra button instead that you're forced to click in order to place the selected items, but that's such a hassle for the user..
I can't imagine that there isn't some way to simply send a message to a window to change or remove focus.. it seems like such a basic function?
Thanks for the suggestions though guys, hopefully there is some way to do this..
Kelly
|
|
|
|
|
After the item in the listbox has been double-clicked, why can't you just call SetFocus() to set the focus on the "map" control?
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|