Работа с элементами управления, пример 2


В центре экрана отобразить окно без рамок, в верхней части которого отобразить текст "Анкетные данные служащего", ниже - поле ввода фамилии, имени и отчества, под которым группы переключателей о поле и образовании. Окно также содержит кнопки "Запись", "Очистка" и "Выход".

 

Результат работы приложения:

 

 

 

рис. 4 рис. 5


 

 

Исходный код программы:

 

2.rc:

// Microsoft Visual C++ generated resource script.

//

#include "resource.h"

 

#define APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////

//

// Generated from the TEXTINCLUDE 2 resource.

//

#include "afxres.h"

 

/////////////////////////////////////////////////////////////////////////////

#undef APSTUDIO_READONLY_SYMBOLS

 

/////////////////////////////////////////////////////////////////////////////

// Russian resources

 

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_RUS)

#ifdef _WIN32

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

#pragma code_page(1251)

#endif //_WIN32

 

#ifdef APSTUDIO_INVOKED

/////////////////////////////////////////////////////////////////////////////

//

// TEXTINCLUDE

//

 

1 TEXTINCLUDE

BEGIN

"resource.h\0"

END

 

2 TEXTINCLUDE

BEGIN

"#include ""afxres.h""\r\n"

"\0"

END

 

3 TEXTINCLUDE

BEGIN

"\r\n"

"\0"

END

 

#endif // APSTUDIO_INVOKED

 

 

/////////////////////////////////////////////////////////////////////////////

//

// Dialog

//

 

IDD_DIALOG1 DIALOGEX 200, 100, 209, 259

STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_SYSMENU

FONT 8, "MS Shell Dlg", 400, 0, 0x1

BEGIN

DEFPUSHBUTTON "Запись",IDOK,23,226,50,14

PUSHBUTTON "Выход",IDCANCEL,143,226,50,14

DEFPUSHBUTTON "Очистить",IDCLEAR,83,226,50,14

LTEXT "Фамилия",IDC_STATIC,21,38,84,11

LTEXT "Имя",IDC_STATIC,22,56,84,11

LTEXT "Отчество",IDC_STATIC,21,74,84,11

EDITTEXT IDC_EDIT_F,69,37,84,12,ES_AUTOHSCROLL

EDITTEXT IDC_EDIT_I,69,55,84,12,ES_AUTOHSCROLL

EDITTEXT IDC_EDIT_O,69,72,84,12,ES_AUTOHSCROLL

GROUPBOX "Пол",IDC_STATIC,21,101,58,42

CONTROL "Мужской",IDC_M,"Button",

BS_AUTORADIOBUTTON | WS_GROUP,28,113,46,10

CONTROL "Женский",IDC_G,"Button",

BS_AUTORADIOBUTTON,28,127,46,10

GROUPBOX "Образование",IDC_STATIC,22,156,57,56

CONTROL "Начальное",IDC_NACHALNOE,"Button",

BS_AUTORADIOBUTTON | WS_GROUP,27,170,48,10

CONTROL "Среднее",IDC_SREDNEE,"Button",

BS_AUTORADIOBUTTON,27,184,46,10

CONTROL "Высшее",IDC_VISHEE,"Button",

BS_AUTORADIOBUTTON,27,199,46,10

GROUPBOX "Анкетные данные служащего",IDC_STATIC,7,7,195,245

END

 

 

/////////////////////////////////////////////////////////////////////////////

//

// DESIGNINFO

//

 

#ifdef APSTUDIO_INVOKED

GUIDELINES DESIGNINFO

BEGIN

IDD_DIALOG1, DIALOG

BEGIN

LEFTMARGIN, 7

RIGHTMARGIN, 202

TOPMARGIN, 7

BOTTOMMARGIN, 252

END

END

#endif // APSTUDIO_INVOKED

 

#endif // Russian resources

/////////////////////////////////////////////////////////////////////////////

 

#ifndef APSTUDIO_INVOKED

/////////////////////////////////////////////////////////////////////////////

//

// Generated from the TEXTINCLUDE 3 resource.

//

 

 

/////////////////////////////////////////////////////////////////////////////

#endif // not APSTUDIO_INVOKED

 

resource.h:

//{{NO_DEPENDENCIES}}

// Microsoft Visual C++ generated include file.

// Used by 2.rc

//

#define IDCLEAR 3

#define IDD_DIALOG1 101

#define IDC_EDIT_F 1001

#define IDC_EDIT_I 1002

#define IDC_EDIT_O 1003

#define IDC_M 1004

#define IDC_G 1005

#define IDC_NACHALNOE 1006

#define IDC_SREDNEE 1007

#define IDC_SREDNEE1 1008

#define IDC_VISHEE 1008

 

// Next default values for new objects

//

#ifdef APSTUDIO_INVOKED

#ifndef APSTUDIO_READONLY_SYMBOLS

#define _APS_NEXT_RESOURCE_VALUE 102

#define _APS_NEXT_COMMAND_VALUE 40001

#define _APS_NEXT_CONTROL_VALUE 1005

#define _APS_NEXT_SYMED_VALUE 101

#endif

#endif

 

main.cpp:

// --- Обязательный включаемый файл

#include <stdio.h>

#include <windows.h>

#include "resource.h"

 

// --- Описание функции диалогового окна

BOOL CALLBACK WndProcDlg(HWND, UINT, WPARAM, LPARAM);

 

// --- Глобальные переменные

HINSTANCE hInst; // Дескриптор экземпляра приложения

 

char Fam[50],Imya[50],Otch[50],Pol[20],Obrazovanie[50],str[300];

 

// --- Функция WinMain

int WINAPI WinMain( HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow

)

{

DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,WndProcDlg);

return 0;

}

 

BOOL CALLBACK WndProcDlg(HWND hWndMain, UINT msg, WPARAM wParam,

LPARAM lParam)

{

switch(msg)

{

case WM_COMMAND:

{

// Обработка сообщений от переключателей

switch(LOWORD(wParam)) {

case IDC_M:

// Выбран мужской пол

sprintf_s(Pol, "%s", "Мужской пол");

break;

case IDC_G:

// Выбран женский пол

sprintf_s(Pol, "%s", "Женский пол");

break;

case IDC_NACHALNOE:

// Выбрано начальное образование

sprintf_s(Obrazovanie, "%s", "Начальное образование");

break;

case IDC_SREDNEE:

// Выбрано среднее образование

sprintf_s(Obrazovanie, "%s", "Среднее образование");

break;

case IDC_VISHEE:

// Выбрано высшее образование

sprintf_s(Obrazovanie, "%s", "Высшее образование");

break;

 

// Кнопка ОК

case IDOK:

// Сохраняем информацию из поля ФАМИЛИЯ в массив Fam

GetDlgItemText(hWndMain, IDC_EDIT_F, Fam, 18);

// Сохраняем информацию из поля ИМЯ в массив Imya

GetDlgItemText(hWndMain, IDC_EDIT_I, Imya, 18);

// Сохраняем информацию из поля ОТЧЕСТВО в массив Otch

GetDlgItemText(hWndMain, IDC_EDIT_O, Otch, 18);

// "Склеиваем" в один массив всю полученую информацию

sprintf_s(str, "%s\n%s\n%s\n%s\n%s",

Fam,Imya,Otch,Pol,Obrazovanie);

MessageBox(hWndMain,str,

"Анкетные данные служащего",MB_OK);

break;

 

// Кнопка ОЧИСТИТЬ

case IDCLEAR:

// Обнуляем массивы

sprintf_s(Pol, "%s", "");

sprintf_s(Obrazovanie, "%s", "");

sprintf_s(Fam, "%s", "");

sprintf_s(Imya, "%s", "");

sprintf_s(Otch, "%s", "");

// Убираем переключатели

CheckRadioButton(hWndMain, IDC_M, IDC_G, NULL);

CheckRadioButton(hWndMain, IDC_NACHALNOE,

IDC_VISHEE, NULL);

// Очищаем поля формы

SetDlgItemText(hWndMain, IDC_EDIT_F, "");

SetDlgItemText(hWndMain, IDC_EDIT_I, "");

SetDlgItemText(hWndMain, IDC_EDIT_O, "");

break;

 

// Кнопка ВЫХОД

case IDCANCEL:

PostQuitMessage(0);

break;

}

}

}

return 0;

}




Дата добавления: 2017-01-26; просмотров: 1033;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.02 сек.