
- •Int pascal WinMain (hinstance hInst, hinstance hPreInst,
- •If(!hPreInst)
- •Int pascal WinMain (hinstance hInst, hinstance hPreInst,
- •If(!hPreInst)
- •ValidateRect(hWnd, null);
- •ValidateRect(hWnd, null);
- •ValidateRect(hWnd, null);
- •If(!hPreInst) {
- •If(!hPreInst){
- •ValidateRect(hWnd, null);
- •If(!hPreInst){
- •ValidateRect(hWnd, null);
- •If(!hPreInst){
- •If(!hPreInst){
- •ValidateRect(hWnd, null);
- •If(!hPreInst){
- •ValidateRect(hWnd, null);
- •If(!hPreInst){
- •ValidateRect(hWnd, null);
- •If(!hPreInst){
- •// Resource.H
- •If(!hPreInst)
Коды программ к вопросам
//22SWA.C
// Simple Windows Aplication - простое приложение Windows
#include <windows.h>
LONG FAR PASCAL WindowProc(HWND, UINT, WPARAM, LPARAM);
char szProgName[] = "ProgName";
int PASCAL WinMain (HINSTANCE hInst, HINSTANCE hPreInst,
LPSTR lpszCmdLine, int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS wc22SWA;
if(!hPreInst)
{
wc22SWA.lpszClassName = szProgName;
wc22SWA.hInstance = hInst;
wc22SWA.lpfnWndProc = WindowProc;
wc22SWA.hCursor = LoadCursor(NULL,IDC_ARROW);
wc22SWA.hIcon = NULL;
wc22SWA.lpszMenuName = NULL;
wc22SWA.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wc22SWA.style = CS_HREDRAW|CS_VREDRAW;
wc22SWA.cbClsExtra = 0;
wc22SWA.cbWndExtra = 0;
if(!RegisterClass (&wc22SWA))
return FALSE;
}
hwnd = CreateWindow(szProgName, "Simple Windows Application",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL,
(HINSTANCE) hInst, (LPVOID) NULL);
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg, 0, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return(msg.wParam);
}
LONG FAR PASCAL WindowProc(HWND hWnd, UINT messg, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
switch(messg)
{
case WM_PAINT:
hdc=BeginPaint(hWnd, &ps);
// начало рисования
MoveToEx(hdc, 0, 0, NULL);
LineTo(hdc, 639, 429);
TextOut(hdc, 55, 20, "<-a diagonal line", 17);
// диоганальная линия
Ellipse(hdc, 200, 200, 275, 250);
TextOut(hdc, 210, 215, "<-an ellipse", 12);
// эллипс
Chord(hdc, 550, 20, 630, 80, 555, 25, 625, 70);
TextOut(hdc, 470, 30, "A Chord ->", 10);
// хорда
Pie(hdc, 300, 50, 400, 150, 300, 50, 300, 100);
TextOut(hdc, 350, 80, "A Pie Wedge", 11);
// сектор
Rectangle(hdc, 50, 300, 150, 400);
TextOut(hdc, 160, 350, "<- A Rectangle", 14);
// прямоугольник
// конец рисования
ValidateRect(hWnd, NULL);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hWnd, messg, wParam, lParam));
}
return(0L);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//22SINE.C
#include <windows.h>
#include <math.h>
#define pi 3.14159265359
LONG FAR PASCAL WindowProc(HWND, UINT, WPARAM, LPARAM);
char szProgName[] = "ProgName";
Int pascal WinMain (hinstance hInst, hinstance hPreInst,
LPSTR lpszCmdLine, int nCmdShow)
{
HWND hwnd;
MSG msg;
WNDCLASS wcSwp;
If(!hPreInst)
{
wcSwp.lpszClassName = szProgName;
wcSwp.hInstance = hInst;
wcSwp.lpfnWndProc = WindowProc;
wcSwp.hCursor = LoadCursor(NULL,IDC_ARROW);
wcSwp.hIcon = NULL;
wcSwp.lpszMenuName = NULL;
wcSwp.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
wcSwp.style = CS_HREDRAW|CS_VREDRAW;
wcSwp.cbClsExtra = 0;
wcSwp.cbWndExtra = 0;
if(!RegisterClass (&wcSwp))
return FALSE;
}
hwnd = CreateWindow(szProgName, "A Sine Wave",
WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, (HWND)NULL, (HMENU)NULL,
(HINSTANCE) hInst, (LPVOID) NULL);
ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);
while(GetMessage(&msg, 0, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return(msg.wParam);
}
LONG FAR PASCAL WindowProc(HWND hwnd, UINT messg, WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
int i;
double y;
switch(messg)
{
case WM_PAINT:
hdc = BeginPaint(hwnd,&ps);
// начало рисования
/* проводим координатные оси х и у */
MoveToEx(hdc, 100, 50, NULL);
LineTo(hdc, 100, 350);
MoveToEx(hdc, 100, 200, NULL);
LineTo(hdc, 500, 200);
MoveToEx(hdc, 100, 200, NULL);
/* рисуем синусоиду */
for(i = 1; i < 400; i++)
{
y=120.0* sin(pi* i* (360.0/ 400.0/ 180.0));
LineTo(hdc, i+ 100, (int)(200.0- y));
}
// конец рисования
ValidateRect(hwnd,NULL);
EndPaint(hwnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return(DefWindowProc(hwnd, messg, wParam, lParam));
break;
}
return(0L);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 22PIE.C
//22PIE.H
#define IDM_ABOUT 10
#define IDM_INPUT 20
#define IDM_EXIT 30
#define DM_TITLE 150
#define DM_P1 151
#define DM_P2 152
#define DM_P3 153
#define DM_P4 154
#define DM_P5 155
#define DM_P6 156
#define DM_P7 157
#define DM_P8 158
#define DM_P9 159
#define DM_P10 160
//22PIE.C
//22PIE.RC
#include "windows.h"
#include "22PIE.H"
BarCursor CURSOR 22PIE.cur
PieMenu MENU
BEGIN
POPUP "Pie_Chart_Data"
BEGIN
MENUITEM "About...", IDM_ABOUT
MENUITEM "Input...", IDM_INPUT
MENUITEM "Exit", IDM_EXIT
END
END
ABOUTDLGBOX DIALOG DISCARDABLE 50,300,180,80
STYLE DS_MODALFRAME|WS_POPUP
FONT 8,"System"
BEGIN
CTEXT "Microsoft C Pie Chart Program",-1,3,29,176,10,NOT WS_GROUP
CTEXT "by Nikolay I. Beloded ",-1,3,16,176,10,NOT WS_GROUP
PUSHBUTTON "OK",IDOK,74,51,32,14
END
PIEDLGBOX DIALOG DISCARDABLE 93,37,193,156
STYLE WS_POPUP|WS_CAPTION
CAPTION "Pie Chart Data"
BEGIN
GROUPBOX "Chart Title:",100,5,3,182,30,WS_TABSTOP
GROUPBOX "Pie Wedge Sizes:",101,3,34,187,95,WS_TABSTOP
LTEXT "Title: ",-1,10,21,30,8,NOT WS_GROUP
EDITTEXT DM_TITLE,40,18,140,12
LTEXT "Wedge #1: ",-1,10,50,40,8, NOT WS_GROUP
LTEXT "Wedge #2: ",-1,10,65,40,8, NOT WS_GROUP
LTEXT "Wedge #3: ",-1,10,80,40,8, NOT WS_GROUP
LTEXT "Wedge #4: ",-1,10,95,40,8, NOT WS_GROUP
LTEXT "Wedge #5: ",-1,10,110,40,8, NOT WS_GROUP
LTEXT "Wedge #6: ",-1,106,50,40,8, NOT WS_GROUP
LTEXT "Wedge #7: ",-1,106,65,40,8, NOT WS_GROUP
LTEXT "Wedge #8: ",-1,106,80,40,8, NOT WS_GROUP
LTEXT "Wedge #9: ",-1,106,95,40,8, NOT WS_GROUP
LTEXT "Wedge #10: ",-1,102,110,45,8, NOT WS_GROUP
EDITTEXT DM_P1,55,45,30,12
EDITTEXT DM_P2,55,60,30,12
EDITTEXT DM_P3,55,75,30,12
EDITTEXT DM_P4,55,90,30,12
EDITTEXT DM_P5,55,105,30,12
EDITTEXT DM_P6,150,44,30,12
EDITTEXT DM_P7,150,61,30,12
EDITTEXT DM_P8,150,76,30,12
EDITTEXT DM_P9,149,91,30,12
EDITTEXT DM_P10,149,106,30,12
PUSHBUTTON "OK",IDOK,39,135,24,14
PUSHBUTTON "Cancel",IDCANCEL,122,136,34,14
END
// 22PIE.C
#include <windows.h>
#include <string.h>
#include <math.h>
#include "22pie.h"
#define radius 180
#define maxnumwedge 10
#define pi 3.14159265359
LONG FAR PASCAL WindowProc(HWND, UINT, WPARAM, LPARAM);
BOOL FAR PASCAL AboutDlgProc(HWND, UINT, WPARAM, LPARAM);
BOOL FAR PASCAL PieDlgProc(HWND, UINT, WPARAM, LPARAM);
char szProgName[] = "ProgName";
char szApplName[] = "PieMenu";
char szCursorName[] = "PieCursor";
char szTString[80] = "(bar chart title area)";
unsigned int iWedgesize[maxnumwedge] = {5, 10, 7, 20};
long lColor[maxnumwedge] = {0x0L, 0xFFL, 0xFF00L, 0xFFFFL,
0xFF0000L, 0xFF00FFL, 0xFFFF00L,
0xFFFFFFL, 0x8080L, 0x808080L};