Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Ответ
 
Опции темы
Старый 11.12.2009, 06:40   #1
Заблокирован
 Разведчик
Аватар для Ivan_64
 
Ivan_64 на правильном путиIvan_64 на правильном пути
Регистрация: 23.11.2009
Сообщений: 10
Популярность: 146
Сказал(а) спасибо: 6
Поблагодарили 41 раз(а) в 20 сообщениях
 
По умолчанию GDI+ Native Template

Честно-говоря я просто набиваю сообщения что б увидеть чат
Но пытаюсь это сделать наиболее культурным способом. В архиве то что в названии темы и еще несколько заморочек, родительский класс контролов и класс edit - его child собственно.
PHP код:
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
//Усовершенствованная версия метода включения WinXP контролов. 


#pragma comment(lib,"gdiplus.lib")
#pragma comment(lib,"Ws2_32.lib")
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdio.h>


#include <windows.h>
#include <ddraw.h>
#include <stdio.h>
#include <gdipluspixelformats.h>
#include <gdiplusenums.h>
#include <GdiplusTypes.h>
#include <GdiplusGpStubs.h>
#include <gdiplusimaging.h>
#include <gdiplusmetaheader.h>
#include <gdipluscolor.h>
#include <gdipluscolormatrix.h>
#include <GdiPlusFlat.h>
#include <GdiPlusInit.h> 
Эта последовательность инлкудов обязательна - менять нельзя. Собственно это все что нужно для работы с GDI+.

Начнемс:
Пишем в WinMain инициализацию самого GDI+-а
PHP код:
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR           gdiplusToken;
GdiplusStartup(&gdiplusToken, &gdiplusStartupInputNULL); 
Далее едем к wndProc-у
PHP код:
case WM_PAINT:
        {
            
BeginPaint(hWnd,&ps);
            
OnPaint();
            
EndPaint(hWnd,&ps);
        }return 
0
Собственно это все - дальше в OnPaint-е можете делать все что захотите, но в данном случае реализована двойна-буфферизация:
PHP код:
case WM_CREATE:
        {
            
InitializeGraphics(GetWindowDC(hWnd));
            
InvalidateRect(hWnd,0,true);
        }return 
0
PHP код:
void InitializeGraphics(HDC hdc)
{
    
GdipCreateFromHDC(hdc,&graphics);
    
GdipCreateBitmapFromGraphics(Window_w,Window_h,graphics,&bmpBack);
    
GdipGetImageGraphicsContext(bmpBack,&memGraphics);
    
GdipSetSmoothingMode(memGraphics,SmoothingModeAntiAlias);
    
GdipCreatePen1(Color::Black,1.0f,UnitPixel,&pen0);

PHP код:
void OnPaint()
{
    
GdipGraphicsClear(memGraphics,0xFFA0A0A0);
    
GdipDrawRectangle(memGraphics,pen0,4.0f,4.0f,595.0f,101.0f);
    
GdipDrawImagePointRectI(graphics,bmpBack,8,30,0,0,Window_w,Window_h,UnitPixel);
}; 
Остальные части программы - заготовки для чего либо. Я не очень силен в С++ потому программа и не была допилена - на ассемблере все это реализуется в пару раз легче.
Вложения
Тип файла: rar _HKP.rar (389.8 Кб, 7 просмотров)
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Muweb Lord Template, Новый MuWeb Razzor Другие Игры 0 28.03.2009 08:44

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 14:06.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net