
- •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)
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);
//-----Конец фрагмента пользователя