weird GeDialog Message problem



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/01/2006 at 00:31, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   9.5 
    Platform:   Windows  ;   
    Language(s) :     C++  ;

    ---------
    Hello,

    I created a GeDialog class with GeUserArea class attached, and need. When i (try to) rewrite Message rutite it seems userarea gets deleted or something... Well, it certainly doesn't show. Nor does the field group in gedialog. Without message it works perfectly though...

    and there's another problem which doesn't really belong in this topic, but in order to avoid openning another one i'll post it here...

    I'm using BFM_INPUT_Y in basecontainer, it gets perfect y coordinates (except those 23 px of bar i guess), but when window is docked it seems to get y value from the top of the cinema window... Is there any way to substract that (for me) unnecessary height?

    Would highly appreciate any help,
    thanks



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/01/2006 at 09:20, xxxxxxxx wrote:

    hmm, and another problem... when docked, cinema freezes sometimes... it's almost impossible to be a logical programming error since it works perfectly when it isn't docked... I have a feeling it all has to do something with restorelayout, which isn't a rutine in ObjectData class... i tried to create a new CommandData class, containing same GeDialog and GeUserArea as previously, including RestoreLayout rutine, and used it as an object but still no success... Any ideas?

    thanks,
    regards



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 28/01/2006 at 19:39, xxxxxxxx wrote:

    make sure you return the SUPER (parent) class call to it's message in your message, normally at the end thus:

    return GeDialog::Message(msg,result);

    or if it's in the userarea then

    return GeUserArea::Message(msg,result);

    otherwise any functions the parent class calls will be missed, and can result in things not happening when/as they should.

    Within your user area you will need to use the commands Global2Local or Screen2Local in order to get the cursor into the correct local position relative to your top left pixel in the GeUserArea.

    Unfortunately it could be anything causing cinema to lock up on docking. Try printing out to see what functions are being called, or simply pausing the debugger to see where in teh call stack you are, and what functions of yours have been called.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 29/01/2006 at 01:51, xxxxxxxx wrote:

    mdme sadie, thanks a lot. It seems everything to be working now (except that c4d freeze :), but i'll figure it out sooner or later).

    regards



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 01/02/2006 at 05:11, xxxxxxxx wrote:

    found the answer to the lock-up question... Redaw() must be called Redaw(TRUE). Don't exactly know why, but it works... and hopefully it will be useful to someone else too.



  • On 20/01/2017 at 18:19, xxxxxxxx wrote:

    @vuce - I'm running into the same locking problem. Where are you calling Redraw()?



  • On 21/01/2017 at 15:32, xxxxxxxx wrote:

    Hi Donovan,

    quite an old post this one ;) Not sure if vuce is still around? Redraw should be called with Redraw(FALSE) unless your calling it from a thread.

    WP.


Log in to reply