Hi,

I made a mistake...

...There are a whole set of generic mouse events that Laurent enabled not
that long ago (I forgot about them!) - they apply to most controls -
including textfields and labels. The following code creates a label and a
textfield with left and right click mouse events. I'm not sure when this
code went in, so if it doesn't work for you you'll have to get the latest
PPM from Laurent's site:)

Cheers,

jez.

use Win32::GUI;

my $mainWindow = new Win32::GUI::Window (
    -name     => "mainWindow",
    -title    => "Testing",
    -pos      => [0, 0],
    -size     => [300, 300],
);
$mainWindow->AddLabel (
   -name   => "Label",
   -pos      => [20, 20],
   -size     => [40, 40],
   -text     => 'some text',
   -notify   => 1,
   -onMouseDown => sub {print 'Left click';},
   -onMouseRightDown => sub {print 'right click';},
    );

$mainWindow->AddTextfield (
   -name   => "Text",
   -pos      => [60, 20],
   -size     => [40, 40],
   -text     => 'some text',
   -onMouseDown => sub {print 'Left click';},
   -onMouseRightDown => sub {print 'right click';},
    );

$mainWindow->Show;

Win32::GUI::Dialog();



----- Original Message ----- 
From: "Frazier, Joe Jr" <[EMAIL PROTECTED]>
To: "Jez White" <[EMAIL PROTECTED]>;
<perl-win32-gui-users@lists.sourceforge.net>
Sent: Thursday, July 08, 2004 1:43 PM
Subject: RE: [perl-win32-gui-users] What Objects catch RightClick event


Well, I tried to catch the right click on the window level also, but
that seemed to fail also.  I do not know enough about the hook method to
even begin.

Here is what I am really trying to do:

I have a window where one of the controls needs to have a hyperlink
(using Win32::GUI::Hyperlink).  Before adding the Hyperlink, this
control was a text field containing UNC path.  I then added the
Hyperlink, but could not find any way to get the click event on the text
field.  So.... I switched to the Label (with an etched border to
"simulate" the appearance of a text field as much as possible) because
at least I could use the notify flag to get the click event (why is
there a click for a label anyway, but not for a text field????).

Now, since the control is a label, I can click the hyperlink and get the
click event, however, I cannot select the data for copying.  So, my
thought was to put an event handler onto the rightclick event.  But, as
we see, that is not catchable either.  I even tried to attach a
rightclick event to the window object, but did not have luck with that
either.

My ultimate goal would be to be able to use a textfield as a first
choice, as long as I can catch both the click and right click events.
Baring that, I would then be fine with using Hook or any other method to
get what I need done.  If something like this can be done with Hook,
can someone send an example as I really can't find an example on the Web
for simular to what I am trying to do.

Thanks,

Joe Frazier, Jr.

> -----Original Message-----
> From: Jez White [mailto:[EMAIL PROTECTED]
> Sent: Thursday, July 08, 2004 5:01 AM
> To: Frazier, Joe Jr; perl-win32-gui-users@lists.sourceforge.net
> Subject: Re: [perl-win32-gui-users] What Objects catch
> RightClick event
>
> Hi,
>
> I was just about to say you could try and hook the event -
> but I just had a look at MS documentation an there doesn't
> seem to be a right click event for a label. Surely that can't
> be correct?
>
> http://msdn.microsoft.com/library/default.asp?url=/library/en-
> us/shellcc/platform/commctls/staticcontrols/staticcontrolrefer
> ence/staticcontrolmessages/stn_clicked.asp
>
> Perhaps another solution would be to trap the right click in
> the parent window, and use the mouse coordinates to see if
> the pointer is over the label.
>
> Cheers,
>
> jez.
> ----- Original Message -----
> From: "Frazier, Joe Jr" <[EMAIL PROTECTED]>
> To: <perl-win32-gui-users@lists.sourceforge.net>
> Sent: Thursday, July 08, 2004 12:03 AM
> Subject: [perl-win32-gui-users] What Objects catch RightClick event
>
>
> I am trying to implement a context menu and need to know what objects
> support rightclick event?  I know Treeview does from the example, but
> what I am really looking for is any way to trigger a popup
> from a label
> (I had to implement a field as a label to catch the click event that
> textfield does not.
>
> Is there any way to have a label catch a right click?
>
> Joe Frazier, Jr.
> Senior Support Engineer
>
> Peopleclick Service Support
> Tel:  +1-800-841-2365
> E-Mail: [EMAIL PROTECTED]
>
>
>
> -------------------------------------------------------
> This SF.Net email sponsored by Black Hat Briefings & Training.
> Attend Black Hat Briefings & Training, Las Vegas July 24-29 -
> digital self defense, top technical experts, no vendor pitches,
> unmatched networking opportunities. Visit www.blackhat.com
> _______________________________________________
> Perl-Win32-GUI-Users mailing list
> Perl-Win32-GUI-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users
>
>
>
>


Reply via email to