Dialog size



  • On 28/08/2018 at 01:33, xxxxxxxx wrote:

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

    ---------
    Hello.

    I have a resizable dialog and I need to know its width and height. 
    Is there a way to do it in Message method listening to BFM_SIZED ?
    In general, how else can I know its size ?

    Thank you.
    Petros.



  • On 29/08/2018 at 00:44, xxxxxxxx wrote:

    Hi Petros,

    maybe take a look at the GetItemDim() function. You could call it on your parent dialog group - might get what you're after?

    WP.



  • On 29/08/2018 at 04:48, xxxxxxxx wrote:

    Hello.

    GetItemDim() works fine ! It returns the size of the requested ID.
    There is another problem though if used in Message listening to BFM_SIZED.
    If I double click the Dialog's Title bar causing the dialog to be maximized, it returns the previous width (not the maximized one).
    So it appears that BFM_SIZED is not the right message to use in order to retrieve the correct Param width. I need the size after the resizing.

    Thank you.



  • On 30/08/2018 at 09:05, xxxxxxxx wrote:

    Hi Peterakos,

    Sorry for the delay, even if it's marked as private you can use BFM_ADJUSTSIZE as bellow to know the current size of the windows.

    Int32 YourGeDialog::Message(const BaseContainer& msg, BaseContainer& result)
    {
    	switch (msg.GetId())
    	{
    		case BFM_ADJUSTSIZE:
    			{
    				Int32 w = msg.GetInt32(BFM_ADJUSTSIZE_WIDTH);
    				Int32 h = msg.GetInt32(BFM_ADJUSTSIZE_HEIGHT);
    				break;
    			}
    	}
    	return GeDialog::Message(msg, result);
    }
    

    If you have any questions, please let me know.
    Cheers,
    Maxime!


Log in to reply