Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo configurar la posición del formulario de inicialización en VC MFC?

¿Cómo configurar la posición del formulario de inicialización en VC MFC?

1. En pocas palabras, puede agregar una oración a la función OnInitDialog():

RECT rect;

GetClientRect(amp; rect); p>

MoveWindow(1024-rect.right, 0, rect.right, rect.bottom);

Los primeros dos parámetros en MoveWindow arriba son las coordenadas de la esquina superior izquierda cuando el formulario es mostrado,

Supongamos que la resolución de su pantalla es 1024*768, por lo que su abscisa es 1024-rect.right;

2. p >

HWND?HMainwnd?=?NULL;?//Identificador de formulario

int?run();?//Función de bucle de mensajes

bool?InitWindowsApp(HINSTANCE? instanciaHandle,?int?show);?//Función de inicialización del formulario

LRESULT?CALLBACK?WndProc(HWND?wnd,?UINT?msg,?WPARAM?wp,?LPARAM?lp);// Formulario función de devolución de llamada de procesamiento

//función principal

int?WINAPI?WinMain(?HINSTANCE?hInstance,?HINSTANCE?hPrevInstance,?LPSTR?lpCmdLine,?int?nShowCmd?)

{

if(!InitWindowsApp(hInstance,?nShowCmd))//Determinar si la inicialización del formulario fue exitosa

{

return? 0;

}

run();?//Bucle para recibir mensajes después de que la inicialización sea exitosa

return?0;

}

bool?InitWindowsApp(HINSTANCE?stanceHandle,?int?show)

{

WNDCLASS?wc;?//Estructura de clases de formulario

wc.style?=?CS_HREDRAW?|?CS_VREDRAW;?//Estilo de formulario

wc.lpfnWndProc?=?WndProc;?//Función de procesamiento de formulario

wc. cbClsExtra?=?0;?//Si la clase del formulario está extendida

wc.cbWndExtra?=?0;?//Si la instancia del formulario está extendida

wc .hInstance? =?stanceHandle;?//Icono de formulario

wc.hIcon?=?LoadIcon(0,?IDI_APPLICATION);?//Icono de formulario

wc.hCursor ?=?LoadCursor( NULL,?IDC_ARROW);?//Estilo del mouse del formulario

wc.hbrBackground?=?(HBRUSH)GetStockObject(WHITE_BRUSH);?//Color de fondo del formulario

wc.lpszMenuName? =?NULL;?//Menú de formulario

wc.lpszClassName?=?"BaseWndClass";?//Nombre de clase de formulario

if( !RegisterClass(amp;wc))? //Determinar si el formulario se registró correctamente<

/p>

{

MessageBox(0,?"Error de registro",?0,?0);

return?false;

}

//Crear formulario

HMainwnd?=?CreateWindow("BaseWndClass",?//Nombre de la clase del formulario

"MyFrom",?// Título del formulario nombre

WS_OVERLAPPEDWINDOW,?//Estilo de formulario

CW_USEDEFAULT,

CW_USEDEFAULT,?//Coordenadas del formulario

CW_USEDEFAULT,

CW_USEDEFAULT,?//Coordenadas del formulario

NULL,?//El formulario principal del formulario

NULL,?//Submenú del formulario principal del formulario

stanceHandle,?//Control del formulario

NULL);?//?Si la función tiene éxito, el valor de retorno es el identificador de la nueva ventana: si la función falla, el valor de retorno es NULL

if(HMainwnd?==?0)//Determinar si la creación del formulario se realizó correctamente

{

MessageBox(0,?"Failed to create the form ",?0,?0);

return?false;

}

ShowWindow(HMainwnd,?SW_SHOW);?//Ventana de visualización

UpdateWindow(HMainwnd);?//Dibujar el formulario;

return?true;

}

LRESULT?CALLBACK?WndProc( HWND?wnd, ?UINT?msg, ?WPARAM?wp, ?LPARAM?lp)

{

switch(msg)//Determinar el tipo de mensaje

{

case?WM_LBUTTONDOWN:?//Clic izquierdo

MessageBox(0,?"Hello?World",?"myMbox",?MB_OK);

return?0;

case?WM_KEYDOWN:?//Mensaje de teclado

if(wp?==?VK_ESCAPE)?//Tecla ESC

DestroyWindow(HMainwnd);?//Destruir el formulario

return?0;

case?WM_DESTROY:

PostQuitMessage(0);?// Terminación mensaje

return?0;

}

return?DefWindowProc(wnd,?msg,?wp,?lp);?//Volver al mensaje predeterminado función

}

int?run()

{

MSG?msg?=?{0};?// Mensaje estructura

BOOL?bRet?=?1;?//Obtener mensaje

while(?(bRet?=?GetMessage(amp;msg,?0,?0,? 0 ))?=?0)//Bucle de mensajes

{

if(bRet?==?-1)//Determine si la recepción del mensaje falló

{

MessageBox(0,?"No se pudo aceptar el mensaje",?0,?0);

romper;

}

else

{

TraducirMessa

ge(amp;msg);?//Convertir mensaje en mensaje de caracteres

DispatchMessage(amp;msg);?//Enviar mensaje a ventana

}

}

retorno?(int)msg.wParam;

}