All pastes #2048598 Raw Edit

Someone

public html v1 · immutable
#2048598 ·published 2011-04-20 10:21 UTC
rendered paste body
// ButtonTest.cpp: определяет точку входа для приложения.//#include "stdafx.h"#include "ButtonTest.h"#include <stdio.h>#define MAX_LOADSTRING 100// Глобальные переменные:HINSTANCE hInst;								// текущий экземплярTCHAR szTitle[MAX_LOADSTRING];					// Текст строки заголовкаTCHAR szWindowClass[MAX_LOADSTRING];			// имя класса главного окнаHWND mainWnd, edit, btn;WNDPROrvvv // Отправить объявления функций, включенных в этот модуль кода:ATOM				MyRegisterClass(HINSTANCE hInstance);BOOL				InitInstance(HINSTANCE, int);LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);LRESULT CALLBACK	btnProc(HWND, UINT, WPARAM, LPARAM);INT_PTR CALLBACK	About(HWND, UINT, WPARAM, LPARAM);int APIENTRY _tWinMain(HINSTANCE hInstance,                     HINSTANCE hPrevInstance,                     LPTSTR    lpCmdLine,                     int       nCmdShow){	UNREFERENCED_PARAMETER(hPrevInstance);	UNREFERENCED_PARAMETER(lpCmdLine); 	// TODO: разместите код здесь.	MSG msg;	HACCEL hAccelTable;	// Инициализация глобальных строк	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);	LoadString(hInstance, IDC_BUTTONTEST, szWindowClass, MAX_LOADSTRING);	MyRegisterClass(hInstance);	// Выполнить инициализацию приложения:	if (!InitInstance (hInstance, nCmdShow))	{		return FALSE;	}	hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_BUTTONTEST));	// Цикл основного сообщения:	while (GetMessage(&msg, NULL, 0, 0))	{		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))		{			TranslateMessage(&msg);			DispatchMessage(&msg);		}	}	return (int) msg.wParam;}////  ФУНКЦИЯ: MyRegisterClass()////  НАЗНАЧЕНИЕ: регистрирует класс окна.////  КОММЕНТАРИИ:////    Эта функция и ее использование необходимы только в случае, если нужно, чтобы данный код//    был совместим с системами Win32, не имеющими функции RegisterClassEx'//    которая была добавлена в Windows 95. Вызов этой функции важен для того,//    чтобы приложение получило "качественные" мелкие значки и установило связь//    с ними.//ATOM MyRegisterClass(HINSTANCE hInstance){	WNDCLASSEX wcex;	wcex.cbSize = sizeof(WNDCLASSEX);	wcex.style			= CS_HREDRAW | CS_VREDRAW;	wcex.lpfnWndProc	= WndProc;	wcex.cbClsExtra		= 0;	wcex.cbWndExtra		= 0;	wcex.hInstance		= hInstance;	wcex.hIcon			= LoadIcon(hInstance, MAKEINTRESOURCE(IDI_BUTTONTEST));	wcex.hCursor		= LoadCursor(NULL, IDC_ARROW);	wcex.hbrBackground	= (HBRUSH)(COLOR_WINDOW+1);	wcex.lpszMenuName	= MAKEINTRESOURCE(IDC_BUTTONTEST);	wcex.lpszClassName	= szWindowClass;	wcex.hIconSm		= LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));	return RegisterClassEx(&wcex);}////   ФУНКЦИЯ: InitInstance(HINSTANCE, int)////   НАЗНАЧЕНИЕ: сохраняет обработку экземпляра и создает главное окно.////   КОММЕНТАРИИ:////        В данной функции дескриптор экземпляра сохраняется в глобальной переменной, а также//        создается и выводится на экран главное окно программы.//BOOL InitInstance(HINSTANCE hInstance, int nCmdShow){   HWND hWnd;   hInst = hInstance; // Сохранить дескриптор экземпляра в глобальной переменной   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);   mainWnd=hWnd;   edit=CreateWindow("edit","edit",WS_CHILD|WS_VISIBLE|WS_BORDER|ES_READONLY|ES_LEFT|ES_MULTILINE|WS_VSCROLL|ES_AUTOVSCROLL|ES_AUTOHSCROLL,110, 270, 20, 20,mainWnd,(HMENU)999,hInst,0);   btn = CreateWindow("button", "Reset",   WS_CHILD| WS_VISIBLE | BS_PUSHBUTTON, 255, 5,  50, 25, edit, (HMENU)444, hInst, NULL);   old_proc = (WNDPROC) SetWindowLongPtr(btn,GWL_WNDPROC,(LONG_PTR)btnProc);   if (!hWnd)   {      return FALSE;   }   ShowWindow(hWnd, nCmdShow);   UpdateWindow(hWnd);   ShowWindow(btn,SW_SHOWNORMAL);   UpdateWindow(btn);   return TRUE;}////  ФУНКЦИЯ: WndProc(HWND, UINT, WPARAM, LPARAM)////  НАЗНАЧЕНИЕ:  обрабатывает сообщения в главном окне.////  WM_COMMAND	- обработка меню приложения//  WM_PAINT	-Закрасить главное окно//  WM_DESTROY	 - ввести сообщение о выходе и вернуться.////LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){	int wmId, wmEvent;	PAINTSTRUCT ps;	HDC hdc;	switch (message)	{	case WM_COMMAND:		wmId    = LOWORD(wParam);		wmEvent = HIWORD(wParam);		// Разобрать выбор в меню:		switch (wmId)		{		case IDM_ABOUT:			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);			break;		case IDM_EXIT:			DestroyWindow(hWnd);			break;		default:			return DefWindowProc(hWnd, message, wParam, lParam);		}		break;	case WM_PAINT:		hdc = BeginPaint(hWnd, &ps);		// TODO: добавьте любой код отрисовки...		EndPaint(hWnd, &ps);		break;	case WM_SIZE:		MoveWindow(edit,0,0,LOWORD(lParam),HIWORD(lParam),TRUE);		break;	case WM_DESTROY:		PostQuitMessage(0);		break;	default:		return DefWindowProc(hWnd, message, wParam, lParam);	}	return 0;}LRESULT CALLBACK btnProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){	if(message == WM_LBUTTONUP)		DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);	return CallWindowProc(old_proc,hWnd,message,wParam,lParam);}// Обработчик сообщений для окна "О программе".INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){	UNREFERENCED_PARAMETER(lParam);	switch (message)	{	case WM_INITDIALOG:		return (INT_PTR)TRUE;	case WM_COMMAND:		if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)		{			EndDialog(hDlg, LOWORD(wParam));			return (INT_PTR)TRUE;		}		break;	}	return (INT_PTR)FALSE;}