Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2012, 20:43   #1
Black_Wolf
Пользователь
 
Регистрация: 16.04.2012
Сообщений: 19
По умолчанию не компилируется Основы работы с изображением

Нада Win32 приложение отображающее на экране изображение с возможностью маштабирования при изменении размеров окна приложение

Код:
#include "stdafx.h"
#include "resource.h"

#define MAX_LOADSTRING 100

HINSTANCE hInst;								
TCHAR szTitle[MAX_LOADSTRING];								
TCHAR szWindowClass[MAX_LOADSTRING];								
// Foward declarations of functions included in this code module:
ATOM				MyRegisterClass(HINSTANCE hInstance);
BOOL				InitInstance(HINSTANCE, int);
LRESULT CALLBACK	WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK	About(HWND, UINT, WPARAM, LPARAM);

int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 	// TODO: Place code here.
	MSG msg;
	HACCEL hAccelTable;
	// Initialize global strings
	LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
	LoadString(hInstance, IDC_112, szWindowClass, MAX_LOADSTRING);
	MyRegisterClass(hInstance);

	// Perform application initialization:
	if (!InitInstance (hInstance, nCmdShow)) 
	{
		return FALSE;
	}


hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_112));
	// Main message loop:
	while (GetMessage(&msg, NULL, 0, 0)) 
	{
		if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) 
		{
			TranslateMessage(&msg);
			DispatchMessage(&msg);
		}
	}
	return msg.wParam;
}



//
//  FUNCTION: MyRegisterClass()
//
//  PURPOSE: Registers the window class.
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//  WM_COMMAND	- process the application menu
//  WM_PAINT	- Paint the main window
//  WM_DESTROY	- post a quit message and return
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc, hCompatibleDC;
	HANDLE hbitmap, hOldBitmap ;
	RECT Rect;
	BITMAP Bitmap;
	switch (message) 
	{
		case WM_COMMAND:
			wmId    = LOWORD(wParam); 
			wmEvent = HIWORD(wParam); 
			// Parse the menu selections:
			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: Add any drawing code here...
		hBitmap=LoadImage(NULL,_TEXT("ATHENA.BMP"),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);

		GetObject (hBitmap, sizeof (BITMAP),&Bitmap);
		hCompatibleDC=CreateCompatibleDC(hdc);
		hOldBitmap=SelectObject(hCompatibleDC,hBitmap);
		GetClientRect (hWnd,&Rect);
		StretchBlt (hdc,0,0,Rect.right,Rect.bottom,hCompatibleDC,0,0,Bitmap.bmWidth,Bitmap.bmHeight,SRCCOPY);
		SelectObject(hCompatibleDC,hOldBitmap);
		DeleteObject(hBitmap);
		DeleteDC (hCompatibleDC);
		EndPaint (hWnd, &ps);
			break;
		case WM_DESTROY:
			PostQuitMessage(0);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}


LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		case WM_INITDIALOG:
				return TRUE;

		case WM_COMMAND:
			if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) 
			{
				EndDialog(hDlg, LOWORD(wParam));
				return TRUE;
			}
			break;
	}
    return FALSE;
}

Последний раз редактировалось Stilet; 16.04.2012 в 21:26.
Black_Wolf вне форума Ответить с цитированием
Старый 17.04.2012, 01:45   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

если не компилируется - выдаеь ошибки - где они?
p51x вне форума Ответить с цитированием
Старый 17.04.2012, 07:40   #3
microbit
Форумчанин
 
Аватар для microbit
 
Регистрация: 26.09.2011
Сообщений: 176
По умолчанию

не вижу MyRegisterClass
microbit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Основы работы в Visual Studio 2010 NiFiLiM Visual C++ 8 18.07.2011 12:36
Основы работы с видео аппаратурой Ksardas13 Общие вопросы C/C++ 1 24.04.2011 03:57
основы работы с сообщ. WM_PAINT и WM_COMMAND (uberlame)) CrazyN00b Win Api 3 08.04.2010 23:40
Контекст устройства. Основы работы с изображением Claster Win Api 1 03.04.2010 00:26
Основы работы с репозиторием. Что и как. TwiX Общие вопросы Delphi 2 27.11.2009 21:28