Un problema con la bandeja Delphi
Hermano, ¿por qué no lo explicas frase por frase? ¡Es mejor para mí presentarte 3 partes en 3 partes y lo entenderás!
1. Cuerpo original del registro de notifyicondata:
tipo
_NOTIFYICONDATAA = registro
cbSize: DWORD es el tamaño de la variable NotifyIcon que definió. que se puede obtener con SizeOf(TNotifyIconData),
p>Wnd: HWND; Wnd es un identificador. ¿Qué formulario desea que manejen los mensajes generados por el programa de bandeja? .
uID: UINT; uID: Si desea crear múltiples subprogramas de bandeja, ¿cómo distinguirlos? Se distingue por este número de identificación.
uFlags: UINT; uFlags es un bit de bandera, que indica las propiedades del programa de bandeja creado actualmente.
NIF_ICON indica el icono actualmente configurado (es decir, el valor de hIcon ) es válido
NIF_MESSAGE indica que el mensaje del sistema actualmente configurado (es decir, el valor de uCallBackMessage) es válido
NIF_TIP indica que la barra de aviso actualmente configurada (es decir, el valor de szTip ) es válido
uCallbackMessage: UINT; uCallBackMessage Esta es la más importante de las 7 partes. Especifique un mensaje de devolución de llamada aquí, es decir, defina un nombre de mensaje aquí. Cuando hace clic o hace clic con el botón derecho en el icono de la bandeja, se enviará un nombre de mensaje definido en uCallBackMessage al formulario señalado por Wnd, y luego usted define un. función de salida de mensaje en el programa para procesar este mensaje. De esta forma se procesa todo el conjunto de mensajes relacionados con Windows.
hIcon: HICON; hIcon es el identificador del icono de la bandeja. Según este identificador, puede agregar, modificar y eliminar iconos.
szTip: matriz [0..63] de AnsiChar; szTip es el mensaje emergente que aparece cuando se coloca el mouse sobre el pequeño ícono en la bandeja de la barra de tareas.
end;
2, ShowWindow
es una función de función API: esta función establece el estado de visualización de la ventana especificada.
Parámetros:
nCmdShow: Especifica cómo se muestra la ventana. Si el programa de aplicación emisor proporciona una estructura STARTUPINFO, este parámetro se ignora la primera vez que la aplicación llama a ShowWindow. De lo contrario, cuando se llama a la función ShowWindow por primera vez, el valor debe ser el parámetro nCmdShow en la función WinMain. En llamadas posteriores, este parámetro puede tener uno de los siguientes valores:
SW_FORCEMINIMIZE: Al minimizar la ventana en WindowNT5.0, se minimizará incluso si el hilo propietario de la ventana está suspendido. Utilice este parámetro únicamente cuando minimice la ventana desde otro hilo.
SW_HIDE: Oculta la ventana y activa otras ventanas.
SW_MAXIMIZE: Maximiza la ventana especificada.
SW_MINIMIZE: Minimiza la ventana especificada y activa la siguiente ventana de nivel superior en el orden Z.
SW_RESTORE: Activa y muestra la ventana. Si una ventana se minimiza o maximiza, el sistema la restaura a su tamaño y posición originales. Las aplicaciones deben especificar este indicador al restaurar una ventana minimizada.
SW_SHOW: Activa y muestra la ventana en su posición y tamaño original.
SW_SHOWDEFAULT: establece el estado de visualización de acuerdo con el indicador SW_FLAG especificado en la estructura STARTUPINFO. El programa que inicia la aplicación pasa la estructura STARTUPINFO a la función CreateProcess.
SW_SHOWMAXIMIZED: Activa la ventana y maximízala.
SW_SHOWMINIMIZED: activa la ventana y la minimiza.
SW_SHOWMINNOACTIVATE: La ventana se minimiza y la ventana activa permanece activa.
SW_SHOWNA: Muestra la ventana en su estado original. La ventana activa permanece activa.
SW_SHOWNOACTIVATE: Muestra la ventana con su último tamaño y estado. La ventana activa permanece activa.
SW_SHOWNOMAL: Activa y muestra una ventana. Si una ventana se minimiza o maximiza, el sistema la restaura a sus dimensiones y dimensiones originales. Las aplicaciones deben especificar este indicador cuando muestran una ventana por primera vez
Valor de retorno: si la ventana estaba visible anteriormente, el valor de retorno no es cero. Si la ventana estaba previamente oculta, el valor de retorno es cero.
3. Función API de la bandeja del sistema Shell_NotifyIcon
Shell_NotifyIcon(dwMessage: DWORD; lpData: PNotifyIconData);
dwMessage: [parámetro de entrada] describe la acción que se realizará realizado . Los valores opcionales de la acción son los siguientes:
NIM_ADD Agregar un icono al área de la bandeja
NIM_DELETE Eliminar un icono del área de la bandeja
NIM_MODIFY Modificar el icono
NIM_SETFOCUS Devuelve el foco al área de la bandeja. Este mensaje generalmente se envía después de que el ícono de la bandeja completa una operación en la interfaz de usuario. Por ejemplo, si un icono de bandeja muestra un menú contextual y luego el usuario presiona la tecla ESC para realizar la operación, se utiliza NIM_SETFOCUS para mantener el foco en el área de la bandeja. Este elemento solo está disponible en el shell del sistema y la DLL de control común (Shlwapi.dll y Comctl32.dll) versión 5.0 o superior.
NIM_SETVERSION especifica el uso de una versión específica del shell del sistema y la DLL de control común. El valor predeterminado es 0, lo que significa que se utiliza el modo Win95. Este elemento sólo está disponible en el shell del sistema y en la DLL de control común versión 5.0 o superior.
lpdata: [parámetro de entrada] Un puntero a la estructura NOTIFYICONDATA
Valor de retorno: la función devuelve VERDADERO cuando tiene éxito; de lo contrario, FALSO.
La explicación del cuerpo del registro del mensaje de devolución de llamada se explicó anteriormente.
Handle: HANDLE Esta es una palabra muy extraña en la traducción china. Nunca supe qué era en ese momento. comienzo.
Cuando comencé a aprender, siempre quise saber qué objeto representa un HANDLE. Ahora no lo entiendo como un objeto determinado, sino como una entrada para acceder a un objeto determinado. De hecho, la mayoría de las veces HANDLE es un número entero. índice (que indica que el objeto está siendo operado). La posición en una determinada tabla del sistema es como el subíndice de una matriz. Hay principalmente varias tablas grandes en el núcleo del sistema Windows. la posición del objetivo en esta tabla para consultar cuando el sistema operativo accede a él. Ocasionalmente es un puntero a un objeto y, a veces, contiene información auxiliar adicional.