Win32


Win32

Win32 is a core set of functions that provide Windows functionability. In this section, we will explain how to create a simple calculator using only Win32 (without using Wintempla). In the examples, we will append 32 at end of the project name to indicate that the project was implemented using Win32 only. For instance, if the Wintempla project is called Program, the Win32 project will be called Program32.
Win32 es un núcleo de funciones que permiten que Windows opere. En esta sección, se explicará cómo crear una calculadora simple usando solamente Win32 (sin usar Wintempla). En los ejemplos, se agregará un 32 al final del nombre del proyecto para indicar que el proyecto fue implementado usando solamente Win32. Por ejemplo, si el proyecto de Wintempla se llama Program, el proyecto de Win32 se llamará Program32.

Problem 1
Design a calculator to add two numbers as shown in the figure.
Diseñe una calculadora para sumar dos números cómo se muestra en la figura.

gui

Step 1. Create the proyect.
  1. Open Microsoft Visual Studio
  2. Select on the menu: File > New > Project ... 
  3. Project types: Visual C++ > Win32   Win32 Project
  4. Name: Calculator32
  5. Location: Provide a suitable location for your project
  6. Press the OK button
  7. Press the Finish button

  1. Abra Microsoft Visual Studio
  2. Desde el menú seleccione File > New > Project ... 
  3. Tipos de Proyectos: Visual C++ > Win32   Win32 Project
  4. Name: Calculator32
  5. Location: proporcione una ubicación conveniente para su proyecto
  6. Presione el botón de OK
  7. Presione el botón de Finish

NewProject

Step 2. Edit the Graphic User Interface (GUI) using Resource View
  1. On the menu: Views > Other Windows ... > Resource View
  2. Once Resource View is open, select the Dialog folder and use the context menu to add a Dialog
  3. The Toolbox will be automatically open.
  4. If the Toolbox does not have items in the Dialog Editor section, Reset the toolbox using the context menu
  5. Insert one button. Set the "Name" to ID_BT_ CALCULATE and the "Text" to Calculate. Use the Windows Properties to set the button properties (to open Windows Properties Views > Windows Properties
  6. Insert an Edit Control (a textbox). Set the "ID" to ID_TBX_X
  7. Insert another Edit Control (a textbox). Set the "ID" to ID_TBX_Y
  8. Insert a third Edit Control (a textbox). Set the "ID" to ID_TBX_RESULT
  9. Insert a Static Text (a label). Set the "Text" to +
  10. Insert a second label. Set the "Text" to =
  11. Press the Enter button

  1. En el menú: Ver > Otras Ventanas ... > Vista de Recursos
  2. Una vez que la Vista de Recursos este abierta, seleccione la carpeta de Dialog y use el menú de contexto para agregar un Diálogo
  3. La Toolbox se abrirá automaticamente
  4. Si la Toolbox no tiene artículos en la sección Editor de Cuadros de Dialogo, aplique un "Reset" a la toolbox usando el menú de contexto
  5. Inserte un Button (un botón). Fije el nombre "ID" a ID_BT_ CALCULATE y el "Text" a Calculate. Use la Ventana de Propiedades para configurar las propiedades del botón (para abrir la Ventana de propiedades Views > Windows Properties)
  6. Inserte un Edit Control (una caja de texto). Fije el "ID" a ID_TBX_X
  7. Inserte otra Edit Control (una caja de texto). Fije el "ID" a ID_TBX_Y
  8. Inserte una tercer Edit Control (una caja de texto). Fije el "ID" a ID_TBX_RESULT
  9. Inserte un Static Text (una etiqueta). Fije el "Text" a +
  10. Inserte una segunda etiqueta. Fije el "Text" a =
  11. Presione el botón de Enter

ContextMenu

ResetToolbox

GuiEdition

InsertButton

Step 3. Write the code.
  1. Open Solution Explorer, if it is not already open. On the menu: View > Solution Explorer
  2. Open the Calculator32.cpp file. You can do this by double click on files shown on the Solution Explorer view
  3. Edit this file as shown

Escriba el código.
  1. Abra Solution Explorer, si esta no está ya abierto. En el menú: View > Solution Explorer
  2. Abra el archivo Calculator32.cpp. Usted puede hacer esto haciendo doble click en archivo que se muestra en la vista de Solution Explorer
  3. Edite este archivo como se muestra

Calculator32.cpp
//_________________________________________________ Calculator32.cpp
#include "stdafx.h"
#include "Calculator32.h"

INT_PTR Window_Open(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
     ::SetWindowText(hWnd, L"Calculator32");
     return TRUE;
}

INT_PTR btCalculate_Click(HWND hWnd, WPARAM wParam, LPARAM lParam)
{
     wchar_t text[32];
     //_______________________________ Extract X
     ::GetWindowText(::GetDlgItem(hWnd, ID_TBX_X), text, 32);
     const double x = _wtof(text);
     //_______________________________ Extract Y
     ::GetWindowText(::GetDlgItem(hWnd, ID_TBX_Y), text, 32);
     const double y = _wtof(text);
     //
     const double z = x + y;
     //_______________________________ Display the result
     _snwprintf_s(text, 32, _TRUNCATE, L"%f", z);
     ::SetWindowText(::GetDlgItem(hWnd, ID_TBX_RESULT), text);
     return TRUE;
}

INT_PTR CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
     switch (message)
     {
     case WM_INITDIALOG:
          return Window_Open(hWnd, wParam, lParam);
     case WM_COMMAND:
          if (LOWORD(wParam) == ID_BT_CALCULATE) return btCalculate_Click(hWnd, wParam, lParam);
          if (LOWORD(wParam) == IDCANCEL) ::EndDialog(hWnd, 0);
          break;
     }
     return (INT_PTR)FALSE;
}

int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE , LPTSTR cmdLine, int cmdShow)
{
     ::DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), NULL, WndProc);
     return 0;
}

Step 4. Run the program.
On the menu: Debug > Start Debugging
Corra el programa. En el menú: Debug > Start Debugging

Calculator32Run

HWND

An HWND is a variable representing a window handle. Microsoft Windows assigns an HWND to each GUI element (a window) in the screen. This handle allows identifying and manipulating each window by the operating system and the programs.
Un HWND es una variable para manipular una ventana. Microsoft Windows asigna un HWND a cada elemento GUI (una ventana) en la pantalla. Esta variable permite identificar y manipular cada ventana por el sistema operativo y los programas.

Problem 2
(a) Compare the code of Wintempla > Introduction > Simple Calculator with the code of Wintempla > Introduction > Win32, (b) Discuss similarities, (c) Discuss differences, (e) When do you use each of these codes.
(a) Compare el código de Wintempla > Introduction > Simple Calculator con el código de Wintempla > Introduction > Win32, (b) Discuta similitudes, (c) Discuta diferencias, (e) Cuando usar cada uno de estos códigos.

© Copyright 2000-2021 Wintempla selo. All Rights Reserved. Jul 22 2021. Home