THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/02/2012 at 11:50, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 12
Platform: Windows ;
Language(s) : C++ ;
---------
Hey guys,
I'm having a hard time finding how to change the cursor's appearance within C++ dialog plugins.
I can get the LMB state and store the desired cursor appearance type into a BaseContainer just fine.
And when I use the LMB it does print the correct ID# for that cursor type. But I can't make the cursor's appearance change.
LONG myDialog::Message(const BaseContainer &msg, BaseContainer &result)
{
BaseContainer bc; //Used to hold the type of cursor to display
BaseContainer state; //Used to hold the state of the LMB
while (GetInputState(BFM_INPUT_MOUSE, BFM_INPUT_MOUSELEFT, state)) //While the LMB is held down
{
if(state.GetLong(BFM_INPUT_VALUE) == 0) break; //If the state value is 0. The LMB is no longer down..so exit the loop
LONG x = state.GetLong(BFM_INPUT_X); //Get the cursor's X screen coordinates
LONG y = state.GetLong(BFM_INPUT_Y); //Get the cursor's Y screen coordinates
//GePrint(LongToString(x));
//GePrint(LongToString(y));
bc.SetLong(RESULT_CURSOR,MOUSE_POINT_HAND); //Store the cursor type into the container
GePrint(LongToString(bc.GetLong(RESULT_CURSOR))); //Prints #19 when the LMB is pressed...Working good so far...
if (bc.GetId()==MOUSE_POINT_HAND) return TRUE; //<---Wrong?
// ...do more stuff
}
return GeDialog::Message(msg,result);
}
When using the GetCursorInfo() method. They just use SetLong(). And for some reason it works.
But since I'm using a dialog plugin. I can't use GetCursorInfo(). And using SetLong() isn't working for me.
What am I missing?
-ScottA