El icono en la esquina superior izquierda del cuadro de diálogo de configuración en el desarrollo WIN32

Método de implementación

Cargue el ícono a través de la función LoadIcon y luego envíe el recurso del ícono cargado al mensaje WM_SETICON de su ventana a través de SendMessage
(Nota: La función especialmente encapsulada en MFC es SetIcon, que es esencialmente enviar un mensaje)

Introducción a la función SendMessage y a la función LoadIcon

1. Prototipo de función


HICON WINAPI LoadIcon(
  _In_opt_  HINSTANCE hInstance,
  _In_      LPCTSTR lpIconName
);

LRESULT WINAPI SendMessage(
  _In_  HWND hWnd,
  _In_  UINT Msg,
  _In_  WPARAM wParam,
  _In_  LPARAM lParam
);

2. Introducción de parámetros (consulte MSDN para un uso detallado)

hInstance: manejador de recursos

lpIconName: nombre del icono, debe convertir la ID del icono a través de la macro MAKEINTRESOURCE

hWnd: manija de ventana

Mensaje: tipo de mensaje de destino

wParam: adjunto a la información del mensaje

lParam: adjunto a la información del mensaje

3. Valor de retorno

Tipo HICON, identificador del icono recién cargado, se devuelve NULL si falla la carga

Tipo LRESULT, el valor de retorno especifica el resultado del procesamiento del mensaje, dependiendo del mensaje enviado

Código de muestra

Nota: El código de muestra no crea una ventana al registrarse, por lo que debe agregar los recursos de ventana e ícono a través de VS usted mismo

/*
 *     图标ID:IDI_ICON
 *
 */
#include <windows.h>
#include "resource.h"

HINSTANCE g_hInstance;

void OnInitDialog(HWND hwndDlg)
{
	HICON hIcon = LoadIcon(g_hInstance, MAKEINTRESOURCE(IDI_ICON));
	SendMessage(hwndDlg, WM_SETICON, FALSE, (LPARAM)hIcon);
}

BOOL WINAPI MsgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
	case WM_INITDIALOG:
		OnInitDialog(hwndDlg);
		break;
	case WM_CLOSE:
		EndDialog(hwndDlg, IDCANCEL);
		break;
	default:
		break;
	}
	return FALSE;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
	g_hInstance = hInstance;
	DialogBox(hInstance, (LPCTSTR)IDD_MAIN_DLG, NULL, MsgProc);
	return 0;
}

Supongo que te gusta

Origin www.cnblogs.com/veis/p/12676769.html
Recomendado
Clasificación