C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Нетология

 4 - Окно Windows на С / Win 32 API / Win32 API

Шаг 4 - Окно Windows на С

В этом шаге мы создадим окно используя только структуры и функции Win Api. Это позволит нам посмотреть как все-таки устроена программа для Windows на другом уровне. Создаем приложение Win 32 Application и далее как Simple application. А вот код:

// СWin.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
#include "windows.h"
#include "windowsx.h"


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

int APIENTRY WinMain(
		HINSTANCE hInstance,
		HINSTANCE hPrevInstance,
		LPSTR lpCmdLine,
		int nCmdShow)
{
	HWND hwnd;
	MSG msg;
	WNDCLASS w;
		memset(&w,0,sizeof(WNDCLASS));
	w.style = CS_HREDRAW | CS_VREDRAW;
	w.lpfnWndProc = WndProc;
	w.hInstance = hInstance;
	w.hbrBackground = GetStockBrush(WHITE_BRUSH);
	w.lpszClassName = "C Windows";
	RegisterClass(&w);
	hwnd = CreateWindow("C Windows","C Windows", WS_OVERLAPPEDWINDOW,
		10,10,600,480,NULL,NULL,hInstance,NULL);
	ShowWindow(hwnd,nCmdShow);
	UpdateWindow(hwnd);
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wparam,LPARAM lparam)
{
	if (Message == WM_DESTROY )
	{
		PostQuitMessage(0);
		return 0;
	}
	return DefWindowProc(hwnd,Message,wparam,lparam);
}

Как видите приложение начинается с функции WinMain. Далее мы заполняем структуру окна WNDCLASS, в которую передаем функцию обработки сообщений w.lpfnWndProc = WndProc; после этого создаем окно CreateWindow, выводим на экран ShowWindow(hwnd,nCmdShow); и запускаем обработчик сообщений. Сначала сообщения попадают на обработку в окно, и если это сообщение закрытия, то if (Message == WM_DESTROY ) прекращает выполнение программы.

Этот код можно компилировать и запускать.


Загрузить проект | | |
Автор Каев Артем.
[AD]





Letyshops [lifetime]