Обучающие курсы:

Обучение профессии "Разработчик C#" + стажировка в Mail.ru
Обучение профессии "Разработчик Python" + трудоустройство
Обучение профессии "Веб-разработчик" + стажировка в Mail.ru


Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





И, наконец, чтобы наше окно лучше смотрелось, заменим стандартный белый цвет фона на серый:
// wcex.hbrBackground = (HBRUSH)(C0L0R_WIND0W + 1);
wcex.hbrBackground = (HBRUSH)GetStockObject(GRAY_BRUSH);
Полный исходный текст нашего приложения приведен в листинге 3.53.
Листинг 3.53. Текст программы на С++, выводящей подстроку в окно приложения
// Точка входа в программу
#include "stdafx.h"
^include "Return Part of String in C.NET.h"
#define MAX_LOADSTRING 100
#include
HINSTANCE hlnst;
TCHAR szTitle[MAX_LOADSTRING] ;
TCHAR szWindowClass[MAX_LOADSTRING];

Ссылки на функции, определенные в этом модуле ATOM MyRegisterClass(HINSTANCE hlnstance);
BOOL Initlnstance(HINSTANCE, int);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
extern "C" char* _stdcall strpart(char *ps, int off);
int APIENTRY _tWinMain(HINSTANCE hlnstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
MSG msg;
HACCEL hAccelTable;
LoadString(hlnstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
LoadString(hlnstance, IDC_RETURNPARTOFSTRINGINCNET,
szWindowClass, MAX_LOADSTRING);
MyRegisterClass(hlnstance);
if (!Initlnstance(hlnstance, nCmdShow))
{
return FALSE;
}
hAccelTable = LoadAccelerators(hlnstance,
(LPCTSTR)IDC_RETURNPARTOFSTRINGINCNET);
while (GetMessage(&msg, NULL, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return (int)msg.wParam;
ATOM MyRegisterClass(HINSTANCE hlnstance)
{
WNDCLASSEX wcex;
wcex.cbSize
wcex.style
wcex.lpfnWndProc
wcex.cbClsExtra
wcex.cbWndExtra
wcex.hlnstance
wcex.hlcon
sizeof(WNDCLASSEX);
CS_HREDRAW | CS_VREDRAW;
(WNDPROC)WndProc;
0;
0;
hlnstance;
Loadlcon(hlnstance,
(LPCTSTR)IDI_RETURNPARTOFSTRINGINCNET);
LoadCursor(NULL, IDC_ARROW);
(HBRUSH)GetStockObject(GRAY_BRUSH);
(HBRUSH) (COLOR_WINDOW+l) ;
(LPCTSTR)IDC_RETURNPARTOFSTRINGINCNET;
szWindowClass;
Loadlcon(wcex.hlnstance,
(LPCTSTR)IDI_SMALL);
return RegisterClassEx(&wcex);
wcex.hCursor
wcex.hbrBackground
//wcex.hbrBackground
wcex.lps zMenuName
wcex.IpszClassName
wcex.hlconSm
BOOL Initlnstance(HINSTANCE hlnstance, int nCmdShow)
{
HWND hWnd;
hlnst = hlnstance;
hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL,
hlnstance, NULL);
if (IhWnd)
{
return FALSE;
}
ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
return TRUE;
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{ int wmld, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
RECT rect;
char src[] = "STRING1 STRING2 STRING3 STRING4 STRING5";
char *dst;
int off, ioff;
char buf[4];
switch (message)
{
case WM_COMMAND:
wmld = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch (wmld)
{
case IDM_ABOUT:
DialogBox(hlnst, (LPCTSTR)IDD_ABOUTBOX,
hWnd, (DLGPROC)About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
case ID_PartStr:
hdc = GetDC(hWnd);
GetClientRect(hWnd, &rect);
off = 10;
dst = strpart(src, off);
ioff = sprintf (buf, ,,%d",off) ;
TextOut(hdc, (rect.right - rect.left)/4,
(rect.bottom - rect.top)/4, "Source:", 7);
TextOut(hdc, (rect.right - rect.left)/3,
(rect.bottom - rect.top)/4, src, strlen(src));
TextOut(hdc, (rect.right - rect.left)/4,
(rect.bottom - rect.top)/3, "Dest:", 5);
TextOut(hdc, (rect.right - rect.left)/3,
(rect.bottom - rect.top)/3, dst, strlen(dst)) ;
TextOut(hdc, (rect.right - rect.left)/4,
(rect.bottom - rect.top)/3 + 30, "Offset:", 7);
TextOut(hdc, (rect.right - rect.left)/3,
(rect.bottom - rect.top)/3 + 30, buf, ioff);
ReleaseDC(hWnd, hdc) ;
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage (Obbreak;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
)
return 0;
)
LRESUT.T CALLBACK About. (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
return TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK I I LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}


 
 
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru