Carol,

Your code looked fine to me but didn't work when I ran it either so I
looked at Aldo's PRIDE program and found that I could only get the keypress
event to be called if I declared a new class and then made the richedit a
member of that class:

     my $EC = new Win32::GUI::Class(     # Without this RichEdit KeyPress
Event doesn't get called
         -name => "MyPerlRichEditClass",
         -extends => "RichEdit",
         -widget => "RichEdit",
     );

     $W->AddRichEdit(
         -class   => $EC,
         -name    => "Console",
         -text    => "",
         -left    => 5,
         -top     => 5,
         -multiline => 1,
         -width   => $W->ScaleWidth-10,
         -height  => $W->ScaleHeight-10,
         -exstyle  => WS_EX_CLIENTEDGE,
         -style    => WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL
                     | ES_LEFT | ES_MULTILINE | ES_AUTOHSCROLL |
ES_AUTOVSCROLL,
     );

I also found that if you want to use the change event you need to do

     $W->Console->SendMessage(1093, 0, 1);  # Enables Change Event for
RichEdit control

I'm afraid my knowledge of XS and the Win32 API isn't up to looking at
Aldo's code to find out why you need to do this.

I've included my modifications to your code the attachment.

Cheers,

Kev.

(See attached file: richedit.pl)




                                                                                
                                   
                    Carolyyne                                                   
                                   
                    Courtney             To:     [EMAIL PROTECTED]              
                           
                    <[EMAIL PROTECTED]        cc:                               
                                        
                    tmail.com>           Subject:     Win32:: GUI Capturing the 
enter key                          
                                                                                
                                   
                    15/06/2001                                                  
                                   
                    08:33                                                       
                                   
                                                                                
                                   
                                                                                
                                   




Kevin,

I still can't get this to work!
What am I doing wrong?

Carol

###
use strict;
use Win32::GUI;

my $M = new Win32::GUI::Menu(
  "&Menu" => "menu",
    " > &Exit" => "exit",
);

my $W = new Win32::GUI::Window(
  -name        => "main",
  -text        => "Test",
  -left        => 100,
  -top         => 100,
  -width       => 400,
  -height      => 300,
  -menu        => $M,
);

$W->AddRichEdit(
    -name    => "console",
    -text    => "enter something>",
    -left    => 5,
    -top     => 5,
    -width   => $W->ScaleWidth-10,
    -height  => $W->ScaleHeight-10,
);
#
$W->Show();
Win32::GUI::Dialog();
#
sub console_KeyPress {
  my($key) = @_;

  if ($key == 13) {
    print "Enter pressed";
  }
  else {
    print "$key";
  }
}

sub exit_Click {
  return -1;
}
_________________________________________________________________________
Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.



Attachment: richedit.pl
Description: Binary data

Reply via email to