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

ValidateRect(hWnd, null);

EndPaint(hWnd, &ps);

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

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

}

return(0L);

}

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

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

//

// template.сpp

// Шаблон, который может быть использован для

// разработки других приложений Windows.

//

#include <windows.h>

#include <stdlib.h>

#include <string.h>

#include <tchar.h> // _T

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

char szProgName[]="ProgName";

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPreInst,

LPSTR lpszCmdLine,int nCmdShow)

{

HWND hWnd;

MSG lpMsg;

WNDCLASS wcApp;

wcApp.lpszClassName =(LPCTSTR)szProgName;

wcApp.hInstance =hInst;

wcApp.lpfnWndProc =WndProc;

wcApp.hCursor =LoadCursor(NULL, IDC_ARROW);

wcApp.hIcon =0;

wcApp.lpszMenuName =0;

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((LPCTSTR)szProgName, (LPCTSTR)_T("A Template"),

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(&lpMsg, NULL, 0, 0))

{

TranslateMessage(&lpMsg);

DispatchMessage(&lpMsg);

}

return(lpMsg.wParam);

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT messg,

WPARAM wParam, LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

switch (messg)

{

case WM_PAINT:

hdc=BeginPaint(hWnd, &ps);

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

Ellipse(hdc, 100, 100, 300, 300);

//TextOutA(hdc, 350, 200, (LPCSTR)"<- A Circle", 11);//

TextOut(hdc, 350, 220, (LPCWSTR)_T("<- A Circle"), 11);//

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

ValidateRect(hWnd, null);

EndPaint(hWnd, &ps);

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

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

}

return(0);

}

// ticktape.cpp

// Приложение Windows - Телеграфная лента, которое

// иллюстрирует использование полос прокрутки и системного таймера

#define SCROLLWIDTH 480 // длина сообщения таймера

#define TIMERDELAY 150 // задержка в миллисекундах

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

char szProgName[]="ProgName";

int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPreInst,

LPSTR lpszCmdLine, int nCmdShow)

{

///…

hWnd=CreateWindow((LPCTSTR)szProgName, (LPCTSTR)_T("Ticker Tape"),

WS_OVERLAPPEDWINDOW, 0, 390, 639, 89,

(HWND)NULL, (HMENU)NULL,

(HINSTANCE)hInst, (LPVOID)NULL);

if (!SetTimer(hWnd, 1, TIMERDELAY, NULL)) {

// запущено слишком много таймеров

//MessageBox(hWnd, (LPCTSTR)_T("Too many timers started!"),

// (LPCTSTR)_T(szProgName), (UINT)MB_OK);

return FALSE;

}

///…

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT messg,

WPARAM wParam, LPARAM lParam)

{

///…

switch (messg)

{

case WM_CREATE:

hdc=GetDC(hWnd);

GetTextMetrics(hdc, &tm);

charwt=tm.tmAveCharWidth;

ReleaseDC(hWnd, hdc);

SetScrollPos(hWnd, SB_HORZ, NewHPos, TRUE);

SetScrollRange(hWnd, SB_HORZ, 0, SCROLLWIDTH, FALSE);

break;

case WM_SIZE:

xClientView=LOWORD(lParam);

break;

case WM_TIMER:

NewHPos+=1;

if(NewHPos >= SCROLLWIDTH)

NewHPos=0;

if(NewHPos < 0)

NewHPos=0;

if (NewHPos != GetScrollPos(hWnd, SB_HORZ)){

SetScrollPos(hWnd, SB_HORZ, NewHPos, TRUE);

InvalidateRect(hWnd, NULL, FALSE);

}

break;

case WM_PAINT:

hdc=BeginPaint(hWnd, &ps);

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

if((fp=fopen("ticktape.txt","r")) != NULL){

i=0;

while(!feof(fp)){

ch=fgetc(fp);

if(ch == '\n') ch=' ';

szBuffer[i]=(char)ch;

i++;

}

///…

TextOutA(hdc, xClientView-(NewHPos*charwt), charwt, (LPCSTR)szBuffer, i);

}

fclose(fp);

TextOutA(hdc, 170, 150, (LPCSTR)szPMessg1, 28);

TextOutA(hdc, 230, 170, (LPCSTR)szPMessg2, 15);

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

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