Probé el código que me pasaste creando una ventana nueva y funciona perfectamente. Luego lo intente aplicar a una ventana mía y no se por que el menu me sale muy desplazado hacia arriba respecto al puntero del ratón. ¿A qué se puede deber?
A tienes razón fíjate en la linea que marco de negrita 1 - Crear un menu llamado m_menu 2 - Dentro de el creas un ítem llamado opciones 3 - Dentro de opciones creas subitem llamado copiar 4 - Creas una ventana con 2 DW (ya enlazados a tu tabla, es decir que apunten a un solo DWO ) 5 - Para el ejemplo DW1 sera el origen y DW2 el fin 6 - Dentro de DW1 en el evento clicked! Va esto If IsSelected(row) Then SelectRow(row, False) Else SelectRow(row, True) End If 7 - Dentro del DW1 en el evento rbuttondown! m_menu lm_menu integer ii_ope_popup ii_ope_popup = 1 lm_menu = CREATE m_menu lm_menu.m_opciones.PopMenu(PointerX(), Pointery()) 8 - En la ventana creas un evento llamado ue_copiar que no retorne argumentos y pegas esto integer li_fila for li_fila = 1 to dw_1.rowcount( ) if dw_1.isselected( li_fila) then dw_1.rowscopy( li_fila,li_fila,primary!,dw_2,1,primary!) end if next *************************************** La que esta de negrita remplazala por esta lm_menu.m_opciones.PopMenu(parent.pointerx( ),parent.Pointery()) Lo que pasa es que si le indicamos solo pointerx y pointer y tomara la posición de la DW si este esta en la parte superior pegada a la izquierda funcionara bien pero si lo mueves se moverá tu menu, por eso debe ser mejor panejar el pointer de la ventana por eso remplazala con un parent.