Pergunta

Em uma aplicação Java (JRE 1.5.0_12) no Windows XP, eu chamo de um método nativo:

public native int attachImage( ... );

... que vive em um C ++ 6.0 .dll Visual. Ele exibe uma janela de aplicativo-modal. O problema é, ícone da bandeja do aplicativo não responde a cliques do mouse, enquanto esta janela tem o foco. Este é um problema porque quando esta janela é exibida, os usuários muitas vezes mudar para outro aplicativo para selecionar a imagem para anexar, em seguida, deseja restaurar esta aplicação.

Foi útil?

Solução

pacote que GUI você está usando?

Você deve ser capaz de implementar isso sem recorrer a chamadas JNI.

Por exemplo, em SWT, você pode abrir um shell modal pedido como este:

Shell shell = new Shell(display,SWT.APPLICATION_MODAL);

Para swing, esta seria:

dialog.setModalityType(Dialog.ModalityType.APPLICATION_MODAL);

Outras dicas

O seu método attachImage não definir corretamente a janela pai para a janela do aplicativo java? Conseguir um hwnd para isso poderia ser complicado (GetForegroundWindow / etc?), Mas pode ser necessário?

Além disso, por que a imagem Peça necessidade de ser JNI? que nos ajude a encontrar uma solução que evite a parte JNI completamente?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top