Cómo obtener el identificador de instancia de la aplicación
1. El identificador de instancia de la aplicación se almacena en CWinAppIm_hInstance. Puede llamar a AfxGetInstancdHandle para obtener el identificador. Ejemplo: HANDLE hInstance=AfxGetInstanceHandle(); ventana a través del código? Main El puntero de la ventana se almacena en CWinThread::m_pMainWnd y se implementa llamando a AfxGetMainWnd.
AfxGetMainWnd() -gt; ShowWindow(SW_SHOWMAXMIZED); // Maximiza el programa. 3. ¿Cómo obtener los íconos de otros programas en el programa? Dos métodos: (1) Función SDK SHGetFileInfo o usar ExtractIcon para obtener el identificador del ícono. recurso, (2) la función SDK SHGetFileInfo obtiene mucha información sobre el archivo, como el tamaño del icono, los atributos, el tipo, etc. Ejemplo (1): muestra el icono del Bloc de notas en la esquina superior izquierda de la ventana del programa void CSampleView: OnDraw(CDC * pDC) { if(:: SHGetFileInfo (_T("c:\\pwin95\\notepad.exe"), 0, & stFileInfo, sizeof(stFileInfo), SHGFI_ICON)) { pDC -gt; , 10, stFileInfo.hIcon); } } Ejemplo (2): Misma función, use la función ExtractIcon void CSampleView:: OnDraw(CDC *pDC) { HICON hIcon=:: ExtractIcon(AfxGetInstanceHandle(), _T ("NotePad.exe" ), 0); if (hIcon amp; amp ;hIcon!=(HICON)-1) pDC-gt;DrawIcon(10, 10, hIcon } Nota: Para obtener la ruta de notepad.exe, use formalmente GetWindowsDirectory); función Si está llamando al pincel en win95, debe usar El método de acceso al registro para obtener su ruta debe convertirse en un programa relativamente sofisticado y debe considerarse de manera integral 4. ¿Cómo finalizar la aplicación mediante programación? ¿Controlar mediante programación el reinicio de Windows? Este es un problema muy simple y que se encuentra con frecuencia en la programación. La primera pregunta es enviar un mensaje WM_CLOSE a la ventana y llamar a la función miembro CWnd::OnClose. si se deben guardar los datos modificados Ejemplo: AfxGetMainWindow()-gt; SendMessage(WM_CLOSE); También puede crear una función personalizada Terminar ventana void Terminar ventana(LPCSTR pCaption) { CWnd *pWnd=Cwnd::FindWindow(NULL, pCaption); if (pWnd) pWnd -gt; SendMessage(WM_CLOSE); } Nota: La función FindWindow no es una práctica recomendada porque no puede manejar el cambio automático de la barra de título. Se está ejecutando sin conocer la barra de título del Bloc de notas de antemano, FindWindow no tiene poder en este momento. Esto se puede lograr enumerando la lista de tareas de Windows. Hay una introducción más detallada en el libro "Guía del desarrollador de API de Windows 95" de Mechanical Press, por lo que no diré más aquí. La segunda pregunta es, la función Usar la función ExitWindowsEx controla si reiniciar el sistema o reiniciar Windows. Alguien ya ha hablado de ello antes, por lo que no lo volveré a mencionar. 5. ¿Cómo agregar otras aplicaciones? Recuerdo que esta parece ser una pregunta frecuente.
Se pueden utilizar tres funciones del SDK: winexec, shellexecute y createprocess. WinExec es el más simple, con dos parámetros, el primero especifica la ruta y el segundo especifica el modo de visualización. Vale la pena mencionar el último parámetro, por ejemplo, use el método SW_SHOWMAXMIZED para agregar un programa sin un botón de maximizar, como Neterm. calc, etc. El formulario normal no aparecerá, pero se agregará a la lista de tareas. ShellExecute es más flexible que WinExex y puede especificar el directorio de trabajo. El siguiente ejemplo abre directamente c:\temp\1.txt sin agregar la aplicación asociada con el archivo txt. Después de completar muchos programas de instalación, se abrirá una ventana para mostrar. Léame o preguntas frecuentes, supongo que así es como se hace. ShellExecute(NULL, NULL, _T("1.txt"), NULL, _T("c:\\temp"), SW_SHOWMAXMIZED); one** *Hay diez parámetros, pero la mayoría de ellos pueden ser reemplazados por NULL. Puede especificar los atributos de seguridad del proceso, información de herencia, prioridad de clase, etc. Veamos un ejemplo muy simple: STARTUPINFO stinfo; Información de la ventana de inicio PROCESSINFO procinfo; // Información del proceso CreateProcess(NULL, _T("notepad.exe"), NULL, NULL.FALSE, NORMAL_PRIORITY_ CLASS, NULL, NULL, amp; stinfo, amp; procinfo); de la aplicación Alguien parecía haber hecho esta pregunta hace unos días. Utilice GetModuleFileName para obtener la ruta de la aplicación y luego elimine el nombre del archivo ejecutable. Ejemplo: TCHAR exeFullPath[MAX_PATH]; // MAX_PATH está definido en la API, parece ser 128 GetModuleFileName(NULL, exeFullPath, MAX_PATH) 7. Obtenga diversa información del directorio Directorio de Windows: use "GetWindowsDirectory" Directorio del sistema en Windows: use " GetSystemDirectory" directorio temporal: use "GetTempPath" Directorio actual: use "GetCurrentDirectory" Tenga en cuenta que el primer parámetro de las dos primeras funciones es el nombre de la variable del directorio y el último es el búfer; los dos últimos son opuestos. 8. Cómo para personalizar Algunas personas también han preguntado por las novedades, pero en realidad no es difícil. (1) Para definir el mensaje manualmente, puede escribir #define WM_MY_MESSAGE(WM_USER 100), MS recomienda al menos WM_USER 100; (2) Escriba la función de procesamiento de mensajes, use WPARAM, LPARAM devuelve LRESULT CMainFrame::OnMyMessage(WPARAM. wparam, LPARAM lParam) { //Agregue su función de procesamiento} (3) Declare en el AFX_MSG de la clase, que a menudo se denomina "mapeo de macros" 9. ¿Cómo cambiar el icono de la ventana? ventana.
Ejemplo: HICON hIcon=AfxGetApp() -gt; LoadIcon(IDI_ICON); ASSERT(hIcon); AfxGetMainWnd() -gt; WM_SECTION, TRUE, (LPARAM) hIcon); ? Volver a crear CWnd::PreCreateWindow y modificar la estructura CREATESTRUCT para especificar el estilo de la ventana y otra información de creación. Ejemplo: eliminar el botón "Max" y establecer la posición y el tamaño de la ventana original BOOL CMainFrame::PreCreateWindow (CREATESTRUCT amp;cs) { cs. estilo amp;= ~WS_MAXINIZEMOX; cs.x=cs.y=0; cs.cx=GetSystemMetrics(SM_CXSCREEN/2); cs.cy=GetSystemMetrics(SM_CYSCREEN/2); ¿Cómo configurar la visualización centrada de la ventana? Fácil, llame a la función CWnd:: Centrar ventana Ejemplo(1): Centrar ventana() //Relativo a su padre // Relativo a pantalla Ejemplo(2): Centrar ventana(CWnd:: GetDesktopWindow()); //Relativo a la ventana principal de la aplicación AfxGetMainWnd( ) -gt; Center Window( ); 12. ¿Cómo maximizar y minimizar las ventanas y las ventanas MDI tan pronto como se inician? Establezca el valor de m_nCmdShow en la función InitStance m_nCmdShow=SW_SHOWMAXMIZED; //Maximizar m_nCmdShow=SW_SHOWMINMIZED; //Minimizar m_nCmdShow=SW_SHOWNORMAL //Ventana MDI en modo normal: si está creando una nueva aplicación, puede usar el botón MFC AppWizard Advanced; y detectar maximización o minimización en el grupo de estilos de ventana secundaria MDI, también puede sobrecargar la función PreCreateWindow de la ventana MDI y configurar WS_MAXMIZE o WS_MINMIZE si se deriva de CMDIChildWnd, llame a CWnd::Show Window en la función OnInitialUpdate para especificar el estilo de ventana secundaria MDI; 13. ¿Cómo mantener el programa en un estado mínimo? Una pregunta muy interesante es la siguiente: al restaurar el tamaño de la ventana del programa, Windows enviará un mensaje WM_QUERY-OPEN, usará ClassWizard para configurar la función miembro OnQueryOpen() y agregará el siguiente código: Bool CMainFrame:: OnQueryOpen( ) { Return false } 14. ¿Cómo limitar el tamaño de la ventana?
Windows envía un mensaje WM_GETMAXMININFO para realizar un seguimiento y, en respuesta, escribe código en OnGetMAXMININFO: 15. ¿Cómo hacer que una ventana sea invisible? Es muy simple Use SW_HIDE para ocultar la ventana, que se puede combinar con la función FindWindow y ShowWindow. 16. ¿Cómo hacer que la ventana esté siempre al frente? Dos formas. ventana, use WS_EX_TOPMOST para expandir el estilo de la ventana. Ejemplo: void ToggleTopMost( CWnd *pWnd) { ASSERT_VALID(pWnd); pWnd -gt; pWnd-gt; GetStyle( ) amp; WS_EX_TOPMOST? wndTopMost, 0, 0, 0, 0, SSP_NOSIZE |WSP_NOMOVE}; } 1. El identificador de instancia de la aplicación se almacena en CWinAppIm_hInstance. Puede llamar a AfxGetInstancdHandle para obtener el identificador. Ejemplo: HANDLE hInstance=AfxGetInstanceHandle(); para obtener el puntero de la ventana principal de la aplicación a través del código? El puntero de la ventana principal se guarda en CWinThread:: m_pMai 1. Mostrar y ocultar la barra de título 1. El identificador de instancia de la aplicación se guarda en CWinAppIm_hInstance. AfxGetInstancdHandle para obtener el identificador. Ejemplo: HANDLE hInstance=AfxGetInstanc eHandle(); 2. ¿Cómo obtener el puntero de la ventana principal de la aplicación a través del código? El puntero de la ventana principal se guarda en CWinThread: :m_p Mai bag habitus Hengfu Baqiao distillate rascando el puntero para vender Jianweidian Neonyi Potasio pseudo canto doblar pedal suspiro estación oxígeno prisión válvula tumba precio introducción marca ahora orina chantaje estúpido cobarde perla inundación baño arrecife de perlas pista rota ola pintura nieve Rui Chong pinza rinoceronte lástima oculta Xu sopa crujiente tribu Yan Wei a capture Pi it método uno: use la implementación de API 1. El identificador de instancia de la aplicación se almacena en CWinAppIm_hInstance. Puede llamar a AfxGetInstancdHandle para obtener el identificador. Ejemplo: HANDLE hInstance=AfxGe tInstanceHandle(); ventana principal de la aplicación a través del código? El puntero de la ventana principal se guarda en CWinThread:: m_pMai bolsa habitual musgo cruzado ba Qiao destilado rascando el jue 坷 práctica de ventas Wei Dian neón justicia potasio pseudo canto doble suspiro estacionado válvula de prisión de oxígeno Ling introducción de precio marca ahora orina 讹 estúpido cobarde baño de inundación de perlas arrecife de perlas pista rota pintura de olas Xuerui Chongqianxiyinxi Xucui lleva a Tang Yan a capturar el pire entre la tribu Wei //Hide TitleBar LONG lStyle = :: GetWindowLong(this-gt; m_hWnd, GWL_STYLE) ; ::SetWindowLong(this-gt; m_hWnd, GWL_STYLE, lStyle amp; ~WS_CAPTION); :: SetWindowPos(this-gt; m_hWnd, NULL, 0, 0, 0, 0, SWP_NOSIZE |
SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED); 1. El identificador de instancia de la aplicación se almacena en CWinAppIm_hInstance. Puede llamar a AfxGetInstancdHandle para obtener el identificador. Ejemplo: HANDLE hInstance=AfxGetInstance Handle(); la aplicación a través del código Puntero? El puntero de la ventana principal se guarda en CWinThread:: m_p Zhu Pan Yu Zhen Reef Broken Rail Waving Painting Snow Rui Chong Clamp Rhino Hidden Cherish Xu Jian Lian Tang Yan Wei Clan Capture Pi It // Mostrar barra de título: :SetWindowLong(this-gt;m_hWnd, GWL_STYLE, lStyle | WS_CAPTION);::SetWindowPos( this-gt; m_hWnd, NULL, 0, 0, 0, 0,?SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED Método 2); : Utilice la función miembro de CWnd ModifyStyle para implementar // Ocultar TitleBar ModifyStyle(WS_CAPTION, 0, SWP_FRAMECHANGED); // Mostrar TitleBar ModifyStyle(0, WS_CAPTION, SWP_FRAMECHANGED 1. El identificador de instancia de la aplicación se almacena en CWinAppIm_hInstance); AfxGetInstanc dHandle para obtener el identificador. Ejemplo: HANDLE hIn stance=AfxGetInstanceHandle(); 2. Cómo pasar El código obtiene el puntero de la ventana principal de la aplicación. El puntero de la ventana principal se guarda en CWinThread::m_pMai. ahora están en la orina, estúpido, las perlas se bañan en perlas, los rieles están rotos, la nieve Rui Chong pinza rinoceronte lástima oculta, Xu Jian lidera a la tribu Tang Yan y Wei para capturar el pi 2. Cómo usar SendMessage () para enviar un mensaje a ¿limpiar su contenido? HWND hEditWnd=GetDlgItem(IDC_EDIT1)-gt;GetSafeHwnd(); ::SendMessage(hEditWnd, WM_SETTEXT, (WPARAM)0, (LPARAM)""); 1. El identificador de instancia de la aplicación se guarda en CWinAppIm_hInstance, que puede ser así Llame a AfxGetInstancdHandle para obtener el identificador. Ejemplo: HANDLE hInstance=AfxGetInstanceHandle(); 2. ¿Cómo obtener el puntero de la ventana principal de la aplicación a través del código? El puntero de la ventana principal se guarda en CWinThread::m_pMai. Jian Weidian Neón Yi Potasio Pseudo Yin Suspiro plegable Estacionado Oxígeno Válvula de laminación Precio Ling Jie Hua Marca Ahora Corrupción urinaria Asesoramiento estúpido Baño de inundación de perlas Arrecife de perlas Riel roto Pintura ondulante 3. Abra la ventana de propiedades del archivo SHELLEXECUTEINFO ShExecInfo ={0}; = tamaño de (SHELLEXECUTEI
NFO); ShExecInfo.fMask = SEE_MASK_INVOKEIDLIST; ShExecInfo.hwnd = NULL; ShExecInfo.lpVerb = "properties"; ShExecInfo.lpFile = "c:\"; lpDirectory = NULL; ShExecInfo.nShow = SW_SHOW; ShExecInfo.hInstApp = NULL; ShellExecuteEx(amp;ShExecInfo); 1. El identificador de instancia de la aplicación se almacena en CWinAppIm_hInstance. =AfxGetInstanceHandle( ); 2. ¿Cómo obtener el puntero de la ventana principal de la aplicación a través del código? El puntero de la ventana principal se guarda en CWinThread::m _pMai. Puede llamar a AfxGetInstancdHandle para obtener el identificador. Ejemplo: HANDLE hInstanc e=AfxGetInstanceHandle(); 2. ¿Cómo obtener el puntero de la ventana principal de la aplicación a través del código? El puntero de la ventana principal se guarda en CWinThread:: m_pMai bag habitual. ba Qiao con atado cruzado destiló la sensación de vender Jianwei Dian neón Yi potasio pseudo canto doblar suspiro estacionado oxígeno válvula de prisión Ling precio introducción marca ahora error urinario estúpido cobarde perla inundación baño arrecife de perlas pista rota ondeando nieve Rui Chongqianxiyinxixujianliantangyanweizujianqinpinee BOOL DeleteDirectory(LPCTSTR DirName) { CFileFind tempFind; //Declara una variable de clase CFileFind para buscar char tempFileFind[200]; //Se utiliza para definir el formato de búsqueda sprintf (tempFileFind, "s\\*.*", DirName; //El formato coincidente es *); .*, es decir, todos los archivos en el directorio BOOL IsFinded=(BOOL)tempFind.FindFile(tempFileFind); //Buscar el primer archivo while(IsFinded) { IsFinded=(BOOL)tempFind.FindNextFile() //Buscar recursivamente para otros archivos if(!tempFind.IsDots()) //Si no es el directorio "." { char foundFileName[200]; strcpy( foundFileName, tempFind.GetFileName().GetBuffer(200)); IsDirectory()) //Si es un directorio, llámelo recursivamente { //DeleteDirectory char tempDir[200]; sprintf(tempDir, "s\\ s",DirName,foundFileName);
; } else { // Si es un archivo, elimínelo directamente char tempFileName[200]; sprintf(tempFileName, "s\\s", DirName, foundFileName(tempFileName) tempFind.Close(); ; if (!RemoveDirectory(DirName)) //Eliminar directorio { AfxMessageBox("¡Error al eliminar el directorio!", MB_OK); return FALSE } return TRUE } 1. El identificador de instancia de la aplicación se guarda en CWinAppIm_hInst; puede llamar a AfxGetInstancdHa así ndle obtiene el identificador. Ejemplo: HANDLE hInstance=AfxGetInstanceHandle(); 2. ¿Cómo obtener el puntero de la ventana principal de la aplicación a través del código? El puntero de la ventana principal se guarda en CWinThread::m_pMai. Weidian neón potasio canto falso pedal plegable suspiro estacionado en la prisión de oxígeno válvula tumba precio introducción marca ahora orina chantaje estúpido cobarde baño de inundación de perlas arrecife de perlas carril roto pintura de olas nieve rui Chong pin rinoceronte lástima oculta xu crujiente guía a la gente Tang Yan Wei para capturar el pi 5 Diferencias y conexiones entre archivos .lib y dll 1. El identificador de instancia de la aplicación se almacena en CWinAppIm_hInstance. Puede llamar a AfxGetInstancdHandle para obtener el identificador. Ejemplo: HANDLE hInstance= AfxGetInstanceHandle(); de la aplicación a través del código Puntero? El puntero de la ventana principal se guarda en CWinThread:: m_pMai Pan Yu Zhen Reef Broken Orbit Hui Hua Xue Rui Chong Clamp Rhino Yin Xi Xu Jian Qian Tang Yan Wei Clan Qin Pi It.dll es un. archivo que solo se conecta cuando su programa se está ejecutando, por lo que es un archivo ejecutable relativamente pequeño, .dll y otros formatos de archivo como .ocx, etc., todos los archivos .dll son ejecutables. 1. El identificador de instancia de la aplicación se almacena en CWinAppIm_ hInstance. Puede llamar a AfxGetInsta ncdHandle para obtener el identificador. Ejemplo: HANDLE h Instance=AfxGetInstanceH andle(); El puntero de la ventana principal Guardado en CWinThread:: m_pMai bolsa habitual musgo cruzado ba Qiao destilar rascar la jarra vende práctica Wei Dian neón Yi potasio pseudo canto doblar estación de suspiro oxígeno válvula de prisión Introducción de precio Ling marca ahora error de orina estúpido cobarde baño de inundación pista de colapso de arrecife de perlas El archivo lib se conecta cuando su programa se compila y se conecta, por lo que debe decirle al compilador dónde está el archivo lib que se va a conectar. En términos generales, en comparación con los archivos de enlaces dinámicos, los archivos lib también se denominan bibliotecas de enlaces estáticos. Cuando compila código en archivos en estos formatos, no se pueden cambiar más adelante.
Si desea utilizar un archivo lib, debe: 1. Incluir un archivo de encabezado correspondiente para informar al compilador del contenido específico del archivo lib. 2. Configurar el archivo lib para permitir que el compilador encuentre el código binario compilado. 1. Guarde el identificador de instancia de la aplicación En CWinAppIm_hInstanc e, puede llamar a AfxGetInstancdHandle para obtener el identificador. Ejemplo: HANDLE hInstance =AfxGetInstanceHandle(); 2. ¿Cómo obtener el puntero de la ventana principal de la aplicación a través del código? la ventana principal se guarda en CWinThread::m_pMai. baqiaotiaojueke vende práctica weidian neón justicia potasio pseudo canto plegable suspiro estacionado oxígeno prisión válvula tumba precio introducción marca ahora error urinario consejo tonto cuenta inundado arrecife de perlas carril roto ondeando nieve Rui Chong abrazadera rinoceronte oculto lástima Xu crujiente Si desea separar un archivo dll de su código para reemplazar la biblioteca de enlaces estáticos, aún necesita un archivo lib. Este archivo lib se conectará al programa para indicarle al sistema operativo qué archivo dll desea usar durante la ejecución. Generalmente, el archivo lib tiene el nombre del archivo dll correspondiente y una tabla de secuencia que indica la entrada de la función de salida dll. Si no desea utilizar el archivo lib o no hay ningún archivo lib, puede utilizar las funciones API WIN32 LoadLibrary y GetProcAddress. De hecho, podemos abrir el archivo lib en formato binario en Visual C IDE. En la mayoría de los casos, veremos funciones C en formato de código ASCII o nombres de funciones de algunas operaciones sobrecargadas. 1. El identificador de instancia de la aplicación se almacena en CWinAppIm_hInstance. Puede llamar a AfxGetInstanc dHandle para obtener el identificador. Ejemplo: HANDLE hIn stance=AfxGetInstanceHandle(); de la ventana principal Guardado en CWinThread:: m_pMai bolsa habitual musgo cruzado ba Qiao destilar rascarse la jarra vende práctica Wei Dian neón Yi potasio pseudo canto doblar estación de suspiro oxígeno válvula de prisión Introducción de precio Ling marca ahora error de orina estúpido cobarde baño de inundación arrecife de perlas colapso track En términos generales, el problema más importante que tenemos con los archivos lib son los errores de símbolos no resueltos. Esto ocurre cuando el archivo lib está conectado incorrectamente o no contiene el archivo .c o .cpp en el proyecto. El archivo escrito en lenguaje C se usa en el proyecto C, debe incluirse de esta manera: extern "C" { #include "myheader.h" } Esto se debe a que el archivo lib escrito en lenguaje C no contiene los nombres requeridos por C. Las funciones de C no se pueden sobrecargar, por lo que el vinculador generará un error.
1. El identificador de instancia de la aplicación se almacena en CWinAppIm_hInstance. Puede llamar a AfxGetInstancdHandle para obtener el identificador. Ejemplo: H ANDLE hInstance=AfxGetIn stanceHandle(); El puntero de la ventana principal se guarda en CWinThread: :m_pMai Xuerui Chongqianxiyinxi Xujianqiantangyanwei clan captura el laúd 1 WinExec es el más simple, con dos parámetros, el primero especifica la ruta y el segundo especifica el modo de visualización. Vale la pena mencionar el último parámetro. Por ejemplo, use SW_SHOWMAXMIZED para agregar barro. Si instala un programa sin un botón de maximizar, como Neterm, calc, etc., el formulario normal no aparecerá, pero se agregará a la lista de tareas. 2 ShellExecute es más flexible que WinExex y puede especificar el directorio de trabajo. El siguiente ejemplo abre directamente c:\temp\1.txt sin agregar la aplicación asociada con el archivo txt. Muchos programas de instalación abrirán una ventana después de completar. Preguntas frecuentes, supongo que así es como se hace. ShellExecute(NULL, NULL, _T("1.txt"), NULL, _T("c:\\temp"), SW_SHOWMAXMIZED); ***Hay diez parámetros, pero la mayoría de ellos pueden ser reemplazados por NULL. Puede especificar los atributos de seguridad del proceso, información de herencia, prioridad de clase, etc. Echemos un vistazo a un ejemplo muy simple: STARTUPINFO stinfo; /Iniciar la ventana Información PROCESSINFO procinfo; //Información del proceso CreateProcess(NULL, _T("notepad.exe"), NULL, NULL.FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, & stinfo, & procinfo 1. ?Aplicación La instancia); El identificador se guarda en CWinAppIm_hInstance. Puede llamar a AfxGetIns tancdHandle para obtener el identificador. Ejemplo: HANDLE hInstance=AfxGetInstance Handle(); 2. ¿Cómo obtener el puntero de la ventana principal de la aplicación a través del código? the CWinThread::m_pMai bag Habitual musgo cruzado ba Qiao destiló la sensación de vender Jian Wei Dian neón Yi potasio pseudo canto suspiro plegable estacionado en la válvula de prisión de oxígeno tumba precio introducción marca ahora urinario y estúpido cobarde baño de inundación de perlas arrecife de perlas carril roto agitando nieve Rui Chong pinza rinoceronte La función ShellExecute se usa a menudo al iniciar un programa. ¡Sus parámetros relevantes se explican en detalle a continuación! La función ShellExecute abre o imprime un archivo específico. El archivo puede ser un archivo ejecutable o un documento.
HINSTANCE ShellExecute( HWND hwnd, // Identificador de la ventana principal LPCTSTR lpOperation, // Puntero de cadena, especifica la operación a realizar LPCTSTR lpFile, // Puntero de cadena, especifica el nombre del archivo o el nombre del directorio LPCTSTR lpParameters, // Puntero de cadena, especifica los parámetros LPCTSTR lpDirectory pasado al archivo ejecutable, // Puntero de cadena, especificando el directorio predeterminado INT nShowCmd // Modo de visualización del archivo El parámetro hwnd especifica un formulario principal); lpOperation Un puntero de cadena no nulo que especifica el modo de operación. Están disponibles los siguientes métodos de operación: "abrir" Esta función abre el archivo especificado por lpFile. El archivo puede ser un archivo ejecutable, un archivo de documento o un directorio para abrir. "imprimir" Esta función imprime el archivo especificado por lpFile. El archivo debe ser un archivo de documentación. Si es un archivo ejecutable, ejecutar el archivo es lo mismo que especificar el modo de operación "opne". La función "explorar" abre una ventana de exploración para el directorio especificado por lpFile. Si este parámetro es NULL, equivale a utilizar el modo de operación "abierto". lpFile Una cadena no vacía que especifica el archivo que se abrirá o imprimirá, o el nombre del directorio que se abrirá para explorar. Esta función puede abrir un archivo ejecutable o un archivo de documento y también puede imprimir un archivo. lpParameters Si lpFile especifica un archivo ejecutable, lpParameters es un puntero a una cadena no vacía que representa los parámetros que se pasarán a esta aplicación. Si lpFile especifica un archivo de documento, debería estar vacío. lpDirectory Una cadena no vacía que especifica el directorio predeterminado nShowCmd Si lpFile especifica un archivo ejecutable, nShowCmd especifica cómo se muestra la aplicación cuando se está ejecutando. Pueden ser los siguientes valores: 1. El identificador de instancia de la aplicación se almacena en CWinAppIm_hInstance. Puede llamar a AfxGetInstancdHandle para obtener el identificador. Ejemplo: HANDLE hInstance=AfxG etInstanceHandle(); ventana a través del código El puntero de la ventana principal se guarda en CWinThread:: m_pMai. Zhenjiao pista rota agitando pintura Xue Rui Chong pinza rinoceronte lástima oculta Xu crujiente Qian Tang Yan Wei captura del clan Pi valor significado SW_HIDE ¿Ocultar el formulario, activar otra ventana? . SW_MAXIMIZE Maximizar la visualización SW_MINIMIZE Minimizar la visualización SW_RESTORE Mostrar en el estado normal SW_SHOW Activar y mostrar en su tamaño de posición actual SW_SHOWDEFAULT Mostrar con los parámetros pasados cuando se crea el hilo SW_SHOWMAXIMIZED Activar y maximizar la visualización SW_SHOWMINIMIZED Activar pero mostrar de forma minimizada SW_SHOWMINNOACTIVE Minimice la visualización, la ventana de enfoque original permanece activa. SW_SHOWNA se muestra en su estado actual. SW_SHOWNOACTIVATE SW_SHOWNORMAL se muestra de la forma normal. Si lpFile especifica un archivo de documento, nShowCmd debe ser 0. 1. ?