flat assembler
Message board for the users of flat assembler.

Index > Windows > What's the name of this control?

Author
Thread Post new topic Reply to topic
Teehee



Joined: 05 Aug 2009
Posts: 568
Location: Brazil
Teehee
That control you move left/right or up/down (check img red mark).

And how can I create it?


Description: what's that? o.o'
Filesize: 49.46 KB
Viewed: 1321 Time(s)

unknowctrl.png



_________________
Sorry if bad english.
Post 29 Dec 2009, 18:32
View user's profile Send private message Reply with quote
chaoscode



Joined: 21 Nov 2006
Posts: 64
chaoscode
well, i don't know the Win32ApiName but under C# .Net it's called Splitcontainer but try to search MSDN
Post 29 Dec 2009, 20:25
View user's profile Send private message ICQ Number Reply with quote
bitRAKE



Joined: 21 Jul 2003
Posts: 2937
Location: vpcmipstrm
bitRAKE
That is a Splitter Control.

One way to create the control is to have the parent window capture mouse messages which aren't handled by the two children (left-right). Another method is to create an explict child window between other two.
Post 29 Dec 2009, 20:30
View user's profile Send private message Visit poster's website Reply with quote
windwakr



Joined: 30 Jun 2004
Posts: 827
Location: Michigan, USA
windwakr
Post 29 Dec 2009, 22:23
View user's profile Send private message Reply with quote
Teehee



Joined: 05 Aug 2009
Posts: 568
Location: Brazil
Teehee
it's not a explorer bar o.o'

MSDN just show me .NET things about splitter control Sad

I was take a look in fasmlab and it uses that splitter control!
hopcode, help!!! How did you do that!?
Post 29 Dec 2009, 22:35
View user's profile Send private message Reply with quote
hopcode



Joined: 04 Mar 2008
Posts: 563
Location: Germany
hopcode
On splitterbars there is lot of code and implementations out there on the net:
on Iczelion site,
by Ewayne, http://asmedit.massmind.org/AsmPgms.html (good tutorials)
by James, http://catch22.net (good tutorials, different approaches), etc.
Code:
The idea behind the splitter control in the bkgui dll
is as follows:

a) the splitter bar is actually a stripe, more like a gap or a "lane-marking"
   where the mouse interact with the client area of a parent object (the way)
   dividing  the object in 2 parts (lanes).
   In this implementation, a splitter bar is [b]not[/b] a child window,
   but a gap between two things; it is a part of the client area 
   of a parent window. It is more like an "absence" than a "presence" of something. 
   This is not philosophic, because on the contrary, it allows the "avoid-to-draw"
   instead of the "too-much-drawing" with the well-known and 
   wide consequence of a hard-boring-flickering.

b) Child controls must be redrawn from the parent window (if
   not subclassed) or redraw itself by what i call 
   "cascade splitting". Because of the fact that they are more often 
   subclassed controls containing more other splitbars that divide 
   their own area to adapt more other little children windows.

c) All user programming results very simple and flexible:
   manage WM_PAINT,WM_MOUSEMOVE,WM_LBUTTONUP,WM_LBUTTONDOWN,WM_SIZE,
   with almost the same code (100/400 bytes totally) even for multisplitting
   like in fasmlab. It seems complex, but i can assure 100% this is the 
   simplest implementation i know for splitterbars, if you require it flexible
   for [b]multisplitting[/b] (on the same area) or [b]cascade splitting[/b]
   (if you have child panels that act as client area wherein  children control must be split).
   User can split normal (as in fasmlab) or "live", it is to say, decreasing
   and growing child windows on place directly.

d) Actually, the splitter in the bkgui.dll makes only calculations
   to RECTs,it is to say it maps the rectangles, left/right (lx/rx)
   or up/down of a parent client area that it divides. 
   Also, it doesent draw anything, but its lane-marking,its gap.
   This is a very important issue to consider.
   This is a flexibility issue for future implementations.

   Infact, with few changes in the main code (actually, 1kb compiled),
   i will implement in a near future:

   1) the custom line drawing, user choose how the splitter will be drawn.
      ( this is a partially implemented feature; i am testing it
      to obtain an ollydbg-like taste splitting in my new own hexadecimal  
      viewer/editor, that will be re-built again in fasmlab as soon as 
      i am ready with that)

   2) will allow dockability of the children windows

   3) the schemataS to a layout, to handle simply messages and rect maps,
      for example:
      - T schemata (1 horz splitter,1 vert splitter)
      - I schamata (1 simple vert splitter)
      - H schemata (2 vert splitter, 1 horz splitter,like in fasmlab)
      - L schemata = T inverted
      - E schemata (3 horz splitter)
      - U , W etcetera 

   4) keyboard splitting (not yet implemented,but simple to do)
    
 ok,the old bkgui.dll exported these functions, self explanatory
             
    mapHsplt   ; gives 2 Horz rects from a 1 client area rect,dividing it
       mapVsplt   ; gives 2 Vert rects from a 1 client area rect,dividing it

    split.redraw
        split.release
       split.split
         split.capture
       split.create
        split.getpos
        split.destroy
    

But I am very sorry, because i do export now from a dll only by
what i call "bridges", and the dll is no more usable as a normal dll,
without using this bridging capability. It exports only one function.
As i have an example i will post it complete on the fasmlab forum.
It is to say after next fasmlab release (first week of the new year)

I hope these concepts will be useful to you anyway.

Best Regards,
Happy Festivity,

hopcode
Post 30 Dec 2009, 06:16
View user's profile Send private message Visit poster's website Reply with quote
Teehee



Joined: 05 Aug 2009
Posts: 568
Location: Brazil
Teehee
Thanks everyone. I made my own Splitter. At least, there is no additional DLL and spend only some kbytes of code.
Post 08 Jan 2010, 18:40
View user's profile Send private message Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2020, Tomasz Grysztar. Also on YouTube, Twitter.

Website powered by rwasa.