커뮤니티 | 큐티/임베디드/큐토피아 | PODO | SDL | 마이크로윈도우 | 리눅스프로그래밍 | 기타 | 포인트순위 | 최근게시물최근게시물 RSS  
korone.net에 다루었으면 하는것은요?
 
 
 
 
 
447
1,266
3,878
3,703,234
  현재접속자 : 10 (회원 0)






배너 신청 문의

 
작성일 : 14-11-11 15:51
[QT/Embedded] QtWinExtras
 글쓴이 : korone
조회 : 4,609   추천 : 0  
   http://www.podovat.com/?p=304 [999]
이글은 제가 podovat.com의 blog 올린글(http://www.podovat.com/?p=304)에서 퍼온것입니다.

MS 윈도우 기반에서 프로그래밍을 할 경우 HDC, HBITMAP, HICON, HRGN등과 같은것을 이용해서 이를 Qt에 통합하여 처리해야 하는 경우가 있습니다.
이때 사용될 수 있는것이 QtWinExtras입니다. QtWinExtras는 MS윈도우 환경에서 사용가능한것을 묶어서 Qt로 변환하는 여러가지 함수들을 제공합니다.

다음의 예는 윈도우 화면의 스크린샷을 찍어서 QImage로 변환하고 이를 파일로 저장하는 예제 입니다.
이를 통해서 HBITMAP을 어떻게 QImage로 변환해서 Qt로 통합하는지를 알 수 있는 가장 쉬운 설명이 될 것 같습니다.

HDC hdc = GetDC(NULL); // get the desktop device context
HDC hDest = CreateCompatibleDC(hdc); // create a device context to use yourself
        
int height = GetSystemMetrics(SM_CXSCREEN);
int width = GetSystemMetrics(SM_CYSCREEN);
 
HBITMAP hbDesktop = CreateCompatibleBitmap( hdc, width, height);
 
SelectObject(hDest, hbDesktop);
 
BitBlt(hDest, 0,0, width, height, hdc, 0, 0, SRCCOPY);
QImage img = QtWin::imageFromHBITMAP(hdc, hbDesktop, width, height);
 
ReleaseDC(NULL, hdc);
 
DeleteDC(hDest);
 
img.save("c:/screenshot.png");

위의 코드에서 12번 라인에 있는 QtWin::imageFromHBITMAP 함수는 HBITMAP으로 부터 width, height만큼의 크기의 QImage객체를 얻어낼 수 있는 함수를 볼 수 있으며, 이 함수를 통해 반환된 QImage객체를 18번라인 save()함수로 저장을 하면 손쉽게 QImage를 이용해 처리할 수 있음을 알 수 있습니다.

QWinExtras에 대한 자세한 내용은 공식 문서 URL http://qt-project.org/doc/qt-5/qtwin.html 에서 확인 할 수 있습니다.

사용시 소스코드내에서 다음과 같이 include를 추가하고
#include <QtWin>

프로젝트파일(.pro)에서 다음과 같이 추가를 해주면 됩니다.
QT += winextras
Qt Professional Service(http://podovat.com)



 
 

Total 201
번호 제   목 글쓴이 날짜 조회 추천
201 [QT/Win32] MFC에서 Qt 사용하기 팁. (2) devilqoo 09-10 1156 0
200 [QT/X11] QML 모델을 C++ 코드로 구현하는 방법 중 하나 (1) 구름님 12-03 3524 0
199 [QT/X11] QWT for qt android (1) 구름님 03-07 5258 1
198 [QT/Win32] QtSingleApplication 이용하기 (1) starbig 01-18 5117 0
197 [QT/Win32] Qt 에서 Daum Maps Api geo [ 주소->좌표 변환 ] 사… starbig 01-15 5645 0
196 [QT/Win32] Qt에서 윈도우 서비스 이용하기, Qt Windows Servic starbig 01-15 4472 0
195 [QT/Embedded] QTcpSocket사용 시 플러그 뽑힘 증상 체크 방법 요원009 11-13 8088 0
194 [QT/Win32] QML 에서 CustomModule 을 import 하여 사용하기 tmdwn 05-18 5131 0
193 [QT/Embedded] Qt update함수/repaint함수 사용법좀 알려주세여.. (1) 잉농 05-14 4874 0
192 [QT/Embedded] C++ Exception을 활용한 런타임 콜스택 정보 얻기 (1) korone 04-01 5223 0
191 [QT/Embedded] Qt 5.4.1 raspberry Pi 프로그램 개발하기 (5) 구름님 03-31 17344 1
190 [QT/Win32] Qt 다국어 처리 (2) korone 03-17 10055 0
189 [QT/Win32] signal to signal devilqoo 02-13 4618 0
188 [QT/Win32] Qt x64 바이너리 제공 사이트 (1) 인라이… 02-12 4523 1
187 [QT/Embedded] 우분투 Qt5 크로스 컴파일 (14/11/26 2차 수정) (9) 김아무… 11-12 12849 0
186 [QT/Embedded] Qt 5.3.2에서 Mouse Double Click시 이벤트 문제 (2) korone 11-11 4691 0
185 [QT/Embedded] QtWinExtras korone 11-11 4610 0
184 [QT/Win32] Qt 코딩 스타일 (편집 편) (4) devilqoo 10-22 8397 0
183 [QT/Win32] Qt와 C++11 (2) devilqoo 10-12 8441 1
182 [QT/Win32] Qt 에서의 이벤트 처리 (5) devilqoo 10-09 8080 0
181 [QT/Win32] QList와 QVector의 비교. (2) devilqoo 10-02 5941 0
180 [QT/Win32] Qt에서 사용되는 컨테이너들을 정리해 보았습… (4) devilqoo 10-01 6732 0
179 [QT/X11] qmake DEFINES 변수에 공백문자가 포함된 값을 설… (1) 별님 09-25 4402 0
178 [QT/Win32] 데이터 압축 관련 qCompress(), qUncompress() (9) 구름님 09-16 4835 0
177 [QT/Win32] QML 로 One-Source Multi-Platform (iOS, Android) 실행 tmdwn 09-03 6262 0
176 [QT/Win32] QML 로 iOS Application 제작하기 tmdwn 09-02 6256 0
175 [QT/Win32] QML 로 Android Application 제작하기 (4) tmdwn 09-02 6597 2
174 [QT/X11] qt에서 메모리 조작하기. (2) 나무나… 07-25 6683 0
173 [QT/Win32] Q_DECLARE_FLAGS 매크로 (2) 구름님 07-11 5445 2
172 [QT/Win32] Q_PROPERTY 매크로 (6) 구름님 07-09 7292 2
 1  2  3  4  5  6  7  


About korone.net | Copyright 2003 korone.net. All rights reserved.