Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
_666
0 / 0 / 1
Регистрация: 28.10.2013
Сообщений: 41
1

Скриншот с GDI+

07.09.2015, 18:15. Просмотров 657. Ответов 5
Метки нет (Все метки)

Доброго времени суток. Нашел код на этом форуме который делает скрин экрана. Пишу на VS2010 код у меня заработал только когда создал консольный проект понятное дело с заменой "int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE , LPTSTR lpstrCmdLine, int nCmdShow)" на просто "int main()" потому что VS в оконном проекте все время ругается "gdiplusflat.h(2321): error C2146:", но мне нужно запустить в оконном проекте и потом изменить код под свои нужды помогите в чем проблема.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "stdafx.h"
#include <windows.h>
#include <ctime>
#include <gdiplus.h>
 
using namespace std;
 
#pragma comment(lib, "GdiPlus.lib") // наш многострадальный lib-файл 
using namespace Gdiplus; // как хочешь, но мне не в кайф постоянно писать Gdiplus::
 
static const GUID png = 
{ 0x557cf406, 0x1a04, 0x11d3, { 0x9a, 0x73, 0x00, 0x00, 0xf8, 0x1e, 0xf3, 0x2e } };
 
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE , LPTSTR lpstrCmdLine, int nCmdShow)
{
    GdiplusStartupInput gdiplusStartupInput;
    ULONG_PTR gdiplusToken;
    GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
 
    HDC scrdc, memdc;
    HBITMAP membit;
    // Получаем HDC рабочего стола
    // Параметр HWND для рабочего стола всегда равен нулю.
    scrdc = GetDC(0);
    // Определяем разрешение экрана
    int Height, Width;
    Height = GetSystemMetrics(SM_CYSCREEN);
    Width = GetSystemMetrics(SM_CXSCREEN);
    // Создаем новый DC, идентичный десктоповскому и битмап размером с экран.
    memdc = CreateCompatibleDC(scrdc);
    membit = CreateCompatibleBitmap(scrdc, Width, Height);
    SelectObject(memdc, membit);
    // Улыбаемся... Снято!
    BitBlt(memdc, 0, 0, Width, Height, scrdc, 0, 0, SRCCOPY);
    HBITMAP hBitmap;
    hBitmap = (HBITMAP) SelectObject(memdc, membit);
    Gdiplus::Bitmap bitmap(hBitmap, NULL);
    bitmap.Save(L"c:\\screen.png", &png);
 
    DeleteObject(hBitmap);
 
    //GdiplusShutdown(gdiplusToken); 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2015, 18:15
Ответы с готовыми решениями:

Winapi GDI+
Я щас допишу, прощу прощения за неудобство. Добавлено через 7 минут Народ...

Использование GDI
Нужно нарисовать прямоугольник, в нем текст. Цикл в нем : HPEN hPen =...

Службы и GDI
Приветствую всех. Есть Windows служба: SC_HANDLE hSCManager =...

GDI+ Image
не размещается *.png файл, вроде все правильно делаю #include&lt;Windows.h&gt;...

GDI в WinAPI
Решил разобраться с рисованием с помощью GDI Нашел простой пример с основами:...

5
nmcf
6276 / 5578 / 2538
Регистрация: 14.04.2014
Сообщений: 23,468
07.09.2015, 20:18 2
Попробуй сделать как написано в 7-м сообщении: http://forums.codeguru.com/showthrea...11#post2172011
 Комментарий модератора 
Нарушение правил форума:
Запрещено публиковать ответы на вопросы или решения задач с форума на другие сайты и давать на них ссылки в качестве ответа.
Впредь вместе со ссылкой размещайте ответ на вопрос полностью на данном форуме.
1
_666
0 / 0 / 1
Регистрация: 28.10.2013
Сообщений: 41
07.09.2015, 23:37  [ТС] 3
Как же оказалось все гениально просто. Я просто не ожидал такого развития событий))). Спасибо.
0
nmcf
6276 / 5578 / 2538
Регистрация: 14.04.2014
Сообщений: 23,468
08.09.2015, 08:07 4
Там сказано: убрать #define WIN32_LEAN_AND_MEAN из stdafx.h.
0
_666
0 / 0 / 1
Регистрация: 28.10.2013
Сообщений: 41
08.09.2015, 15:14  [ТС] 5
Я прочитал понял и запустил, нормально работает.
0
nmcf
08.09.2015, 21:59     Скриншот с GDI+
  #6

Не по теме:

Это чтобы ответ был в теме.

0
08.09.2015, 21:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.09.2015, 21:59
Привет! Вот еще темы с ответами:

3D графика в GDI
Здравствуйте, изучаю GDI и у меня возник вопрос, возможно ли создавать 3D...

Перемещение фигур GDI
Имеется такой вот код рисования жука, необходимо добавить функцию его...

Копирование GDI объектов
Речь скорее не о копировании самих объектов и их ресурсов для создания других...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru