See detailed reqs.
## Deliverables
Requirements:
Basically I need a window class that I can use in a simple call to CreateWindowEx() without no special bitwise codes (as BS_PUSHBUTTON for the "Button" class for example)
1. The class needs to be completely self-contained, preferable contained within a single .h./cpp pair. Self-contained also means that you don't have to do anything special to create the window (which will always be a child window), and that any initialisation is performed in WM_NCCREATE or WM_CREATE; correspondingly ALL cleanup/etc. must be done (within your wc implementation) in response to WM_DESTROY/WM_NCDESTROY.
2. The class is basically a textbox but with the added proviso that its length is infinite. This is probably going to involve partial file caching and sycchronisation to allow smooth scrolling of a very large document. The solution must incorporate something like this, and should not assume to be able to store the entire text content in memory.
3. To the user, instances of the class must resemble and behave exactly like text boxes, although the content will always be UTF-16 / UNICODE. In the case of ANSI, non-UTF-16 based files, just leave a placeholder in your code for a function that converts whatever charset is declared or detected to UTF-16, so your control can just rely on everything being UNICODE and that being sufficient.
4. It makes sense to re-use the existing MS set of messages / notifications since in behavioural terms there should (must) be no difference, so in theory you shouldn't need any more messages. If you do, use WM_APP+
5. Please provide a working example, with code, of a primitive (no need for menus or full GUI or anything) Notepad clone to demonstrate your control.
That's it. Serious bidders only please.
Many thanks,.
* * *This broadcast message was sent to all bidders on Sunday Aug 14, 2011 1:05:18 PM:
Note: the notepad doesn't have to be functional, just a window with a single child window of your class is plenty.
* * *This broadcast message was sent to all bidders on Monday Aug 15, 2011 4:54:31 AM:
This must be developed as a window class in pure C/C++, absolutely no libraries.
* * *This broadcast message was sent to all bidders on Monday Aug 15, 2011 7:21:46 AM:
This is not a read-only textbox. It is an exact clone of a Windows EDIT control but with no limit on data size and the associated need to cache part of its data. Also its data clearly cannot be stored as its window text.
* * *This broadcast message was sent to all bidders on Monday Aug 15, 2011 2:07:08 PM:
Just one further clarification while I am considering bids....
When I use the word "class" I don't mean a C++ class, although your free to use one internally if you want. What I mean is a Windows class that is registered using RegisterClass() and has a Window Procedure (wndproc) and is entirely self-contained as described above.
Also, and this is an absolute must, no global or static variables to store information between calls to your window procedure. If you need to store information, use the Window Property List (SetProp(), GetProp(), RemoveProp() - either 1:1 or create a simple class/struct containing all your per-window information and store in a single window property, or as GWLP_USERDATA.
The point is: I need to be able to create multiple windows of this class just as I would with a standard EDIT.
Thanks, Chris