Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kody_programm_k_voprosam.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
778.75 Кб
Скачать

If(!hPreInst){

wcApp.lpszClassName = (LPCWSTR)szProgName;

wcApp.hInstance = hInst;

wcApp.lpfnWndProc = WndProc;

wcApp.hCursor = LoadCursor(NULL, IDC_ARROW);

wcApp.hIcon = NULL;

//wcApp.lpszMenuName = (LPCWSTR)szApplName;

wcApp.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);

wcApp.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);

wcApp.style = CS_HREDRAW | CS_VREDRAW;

wcApp.cbClsExtra = 0;

wcApp.cbWndExtra = 0;

if(!RegisterClass(&wcApp))

return 0;

}

hWnd = CreateWindow((LPCWSTR)szProgName, (LPCWSTR)_T("Sizing A Rectangle"),

WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,

CW_USEDEFAULT, CW_USEDEFAULT,

CW_USEDEFAULT,(HWND)NULL,

(HMENU)NULL, (HINSTANCE)hInst,(LPSTR)NULL);

ShowWindow(hWnd, nCmdShow);

UpdateWindow(hWnd);

while(GetMessage(&lpMsg, NULL, 0, 0)){

TranslateMessage(&lpMsg);

DispatchMessage(&lpMsg);

}

return(lpMsg.wParam);

}

LRESULT CALLBACK WINAPI WndProc(HWND hWnd, UINT messg,

WPARAM wParam, LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

static int xClientView, yClientView;

switch(messg){

case WM_COMMAND:

#ifdef _WIN32

switch(LOWORD(wParam)){

#else

switch(wParam){

#endif

case IDM_SMALL:

wSize=30;

break;

case IDM_MEDIUM:

wSize=60;

break;

case IDM_LARGE:

wSize=90;

break;

default:

break;

}

InvalidateRect(hWnd, NULL, TRUE);

break;

case WM_SIZE:

xClientView = LOWORD(lParam);

yClientView = HIWORD(lParam);

break;

case WM_PAINT:

hdc=BeginPaint(hWnd, &ps);

//-----Начало фрагмента пользователя-----

SetMapMode(hdc, MM_ISOTROPIC);

SetWindowExtEx(hdc, 500, 500, NULL);

SetViewportExtEx(hdc, xClientView, -yClientView, NULL);

SetViewportOrgEx(hdc, xClientView / 2, yClientView / 2, NULL);

Rectangle(hdc, -(wSize * 2), -wSize, (wSize * 2), wSize);

TextOut(hdc, -(wSize*2), (wSize * 2) + 20, (LPCWSTR)_T("A Sized Rectangle"), 17);

//-----Конец фрагмента пользователя-----

ValidateRect(hWnd, null);

EndPaint(hWnd,&ps);

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

return(DefWindowProc(hWnd, messg, wParam, lParam));

}

return(0);

}

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

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

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

// menu2.cpp

// resource.h

//{{NO_DEPENDENCIES}}

// Microsoft Visual C++ generated include file.

// Used by menu2.rc

//

#define IDR_MENU1 101

#define IDR_ACCELERATOR1 102

#define IDM_SMALL 40004

#define IDM_MEDIUM 40005

#define IDM_LARGE 40006

#define IDM_BLACK 40019

#define IDM_WHITE 40020

#define IDM_RED 40021

#define IDM_ORANGE 40022

#define IDM_YELLOW 40023

#define IDM_GREEN 40024

#define IDM_BLUE 40025

#define IDM_MAGENTA 40026

#define IDM_LTGREEN 40027

#define IDM_LTBLUE 40028

#define IDM_LTRED 40029

#define IDM_LTGRAY 40030

#define ID_BACKGROUND_BLACK 40031

// menu2.rc

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

//

// Menu

//

IDR_MENU1 MENU

BEGIN

POPUP "&Rectangle_Size"

BEGIN

MENUITEM "&small", IDM_SMALL

MENUITEM "&Medium", IDM_MEDIUM

MENUITEM "&LARGE", IDM_LARGE

END

POPUP "Ba&ckground_Colors"

BEGIN

MENUITEM "BLAC&K\tF1", IDM_BLACK

MENUITEM "&WHITE\tF2", IDM_WHITE

MENUITEM "&RED\tF3", IDM_RED

MENUITEM "&ORANGE\tF4", IDM_ORANGE

MENUITEM "&YELLOW\tF5", IDM_YELLOW

MENUITEM "GREE&N\tF6", IDM_GREEN

MENUITEM "&BLUE\tF7", IDM_BLUE

MENUITEM "&MAGENTA\tF8", IDM_MAGENTA

MENUITEM SEPARATOR

MENUITEM "Lt GR&EEN\tF9", IDM_LTGREEN

MENUITEM "Lt BL&UE\tF10", IDM_LTBLUE

MENUITEM "Lt RE&D\tF11", IDM_LTRED

MENUITEM "Lt GR&AY\tF12", IDM_LTGRAY

END

END

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

//

// Accelerator

//

IDR_ACCELERATOR1 ACCELERATORS

BEGIN

VK_F1, IDM_BLACK, VIRTKEY, NOINVERT

VK_F7, IDM_BLUE, VIRTKEY, NOINVERT

VK_F6, IDM_GREEN, VIRTKEY, NOINVERT

VK_F10, IDM_LTBLUE, VIRTKEY, NOINVERT

VK_F12, IDM_LTGRAY, VIRTKEY, NOINVERT

VK_F9, IDM_LTGREEN, VIRTKEY, NOINVERT

VK_F11, IDM_LTRED, VIRTKEY, NOINVERT

VK_F8, IDM_MAGENTA, VIRTKEY, NOINVERT

VK_F4, IDM_ORANGE, VIRTKEY, NOINVERT

VK_F3, IDM_RED, VIRTKEY, NOINVERT

VK_F2, IDM_WHITE, VIRTKEY, NOINVERT

VK_F5, IDM_YELLOW, VIRTKEY, NOINVERT

END

// menu2.сpp

// menu2.сpp

///…

LRESULT CALLBACK WINAPI WndProc(HWND, UINT, WPARAM, LPARAM);

char szProgName[] = "ProgName";

char szApplName[] = "IDR_MENU1"; // IDR_MENU1===ShapeMenu

static WORD wSize = 30;

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPreInst,

LPSTR lpszCmdLine,int nCmdShow)

{

///…

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]