300x250
반응형

 

 

Capture 함수를 호출 하면 됩니다.

file_name은

- 저장 파일 이름

- 절대 경로 + 파일이름

둘중 아무거나 넣어도 됩니다.

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
void Capture(CString file_name)
{
    CRect rect;
    GetClientRect(rect);
 
    CWnd* pWndDesktop = GetDesktopWindow();
    CWindowDC ScrDC(pWndDesktop);
 
 
    i32 sx = rect.left;
    i32 sy = rect.top;
 
    CPoint offset = data_mgr->GetPopupOffset();
    sx += offset.x;
    sy += offset.y;
    
    i32 cx = rect.Width();
    i32 cy = rect.Height();
 
    CImage Image;
    (void)Image.Create(cx, cy, ScrDC.GetDeviceCaps(BITSPIXEL));
    CDC* pDC = CDC::FromHandle(Image.GetDC());
    (void)pDC->BitBlt(00, cx, cy, &ScrDC, sx, sy, SRCCOPY);
    Image.ReleaseDC();
 
    CString str_save;
    str_save = file_name;
    long result = Image.Save(str_save, Gdiplus::ImageFormatPNG);
 
    if (result < 0)
    {
        (void)AfxMessageBox(_T("캡쳐 오류"));
    }
}
cs

 

[정보가 도움이 되셨다면 광고 배너 클릭이 글쓴이의 활력이 됩니다.]

감사합니다.

300x250
반응형
300x250
반응형

 

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
void CPrintTestDlg::PrintOutImage(CString file_name)
{
    int nWidth, nHeight;
    CClientDC dc(this);//this->pImgWnd
    CDC MemDC;
    MemDC.CreateCompatibleDC(&dc);
 
    CRect rect;
    GetClientRect(rect);
    nWidth = rect.Width();
    nHeight = rect.Height();
 
    CBitmap BMP;
 
    CImage image;
    image.Load(file_name);
    if (image.IsNull() == false)
    {
        int si = image.GetWidth();
        int sih = image.GetHeight();
        BMP.Attach(image.Detach());
 
        HANDLE hDib;
        LPSTR pDib;
        LPBITMAPINFO lpBitInfo;
        HANDLE hlpBitInfo;
 
        hDib = GlobalAlloc(GHND, nWidth*nHeight * 3);
        pDib = (LPSTR)GlobalLock(hDib);
        hlpBitInfo = GlobalAlloc(GHND, sizeof(BITMAPINFOHEADER) + sizeof(BITMAPINFO));
        lpBitInfo = (LPBITMAPINFO)GlobalLock(hlpBitInfo);
 
        lpBitInfo->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
        lpBitInfo->bmiHeader.biWidth = nWidth;
        lpBitInfo->bmiHeader.biHeight = nHeight;
        lpBitInfo->bmiHeader.biPlanes = 1;
        lpBitInfo->bmiHeader.biBitCount = 24;
        lpBitInfo->bmiHeader.biCompression = BI_RGB;
        lpBitInfo->bmiHeader.biSizeImage = nWidth * nHeight * 3;
        lpBitInfo->bmiHeader.biXPelsPerMeter = 0;
        lpBitInfo->bmiHeader.biYPelsPerMeter = 0;
        lpBitInfo->bmiHeader.biClrUsed = 0;
        lpBitInfo->bmiHeader.biClrImportant = 0;
 
        HDC hdc = ::GetDC(this->m_hWnd);
        GetDIBits(hdc, (HBITMAP)BMP, 0, nHeight, pDib, lpBitInfo, DIB_RGB_COLORS);
        ::ReleaseDC(this->m_hWnd, hdc);
 
        static DOCINFO docinfo = { sizeof(DOCINFO), _T("프린트"), NULL };
 
 
        //팝업창 안띠우고 기본 설정 프린터로 인쇄
        CPrintDialog dlg(TRUE, PD_RETURNDEFAULT);
        dlg.DoModal();
 
        //팝업창 뛰우고 프린터 선택해서 인쇄
        /*CPrintDialog dlg(FALSE);
        if (dlg.DoModal() == IDCANCEL)
        {
 
        GlobalUnlock(hDib);
        GlobalFree(hDib);
        GlobalUnlock(hlpBitInfo);
        GlobalFree(hDib);
 
        DeleteObject(BMP.m_hObject);
 
        DeleteDC(MemDC.m_hDC);
        DeleteDC(dc.m_hDC);
 
        return;
        }*/
 
 
        DEVMODE *pDevmode = (DEVMODE*)dlg.GetDevMode();
        pDevmode->dmOrientation = 2;
        
        HDC hpdc = dlg.CreatePrinterDC();
 
        int cy = GetDeviceCaps(hpdc, VERTRES);
        int cx = GetDeviceCaps(hpdc, HORZRES);
 
        if (StartDoc(hpdc, &docinfo))
        {
            if (StartPage(hpdc))
            {
                StretchDIBits(hpdc,
                    00, cx, cy, 0, nHeight - sih, si, sih, pDib, lpBitInfo, DIB_RGB_COLORS, SRCCOPY);
                //image.StretchBlt(image.GetDC(), 0, 0, nWidth, nHeight, SRCCOPY);
                EndPage(hpdc);
            }
            EndDoc(hpdc);
        }
 
        GlobalUnlock(hDib);
        GlobalFree(hDib);
        GlobalUnlock(hlpBitInfo);
        GlobalFree(hlpBitInfo);
 
        DeleteObject(BMP.m_hObject);
 
        DeleteDC(dc.m_hDC);
        DeleteDC(MemDC.m_hDC);
        ::RestoreDC(hpdc, -1);
    }
}
cs

PrintTest.zip
0.24MB

 

 

 

 

 

 

 

 

300x250
반응형
300x250
반응형

https://dribbble.com/

 

Dribbble - Discover the World’s Top Designers & Creative Professionals

Discover the world’s top designers & creatives Dribbble is the leading destination to find & showcase creative work and home to the world's best design professionals. Sign up

dribbble.com

 

https://trends.uxdesign.cc/

 

100 design lessons for 2021

From design tools, to our design process, to the user behaviors that will change the way we design — a list of what to expect for User Experience (UX) Design in the next year.

trends.uxdesign.cc

 

300x250
반응형

'기타 > 링크' 카테고리의 다른 글

Point Cloud Library  (0) 2021.10.19
큐티 관련  (0) 2021.10.14
베이지안 확률  (0) 2021.10.01
각도기 사이트 링크  (0) 2021.08.09
https://codepen.io/  (0) 2021.07.06
300x250
반응형

https://sumniya.tistory.com/29

 

베이지안 추론(1) - 이론

개인적으로는 통계의 본질은 실제 세계의 문제를 확률분포로써 수학적으로 모델링하고, 가정한 분포의 parameter를─error를 컨트롤하면서 이를 최소화하며─추정하는 학문이라고 생각합니다. 따

sumniya.tistory.com

 

https://m.blog.naver.com/bsj104/221658918933

 

베이지안(Bayesian) 접근법

1. 베이지안 통계의 논리 (예) 이항분포를 따르는 n번의 시행에서 동전의 앞면이 r번 나올 확률 - 빈도주의...

blog.naver.com

 

 

https://throwexception.tistory.com/942

 

데이터분석 - 8. 베이즈 이론

베이즈 정리 - 역확률이라고 할수있음. - 주어진 정보로 모르는 확률을 구함. 조건부 확률이란? - 어떤 사건이 발생했다고 가정할때 다른 사건이 발생할 확률 주사위를 던질때 1이 나올 확률? - S =

throwexception.tistory.com

 

300x250
반응형

'기타 > 링크' 카테고리의 다른 글

큐티 관련  (0) 2021.10.14
UI 디자인 사이트  (0) 2021.10.07
각도기 사이트 링크  (0) 2021.08.09
https://codepen.io/  (0) 2021.07.06
CSS Animation 링크  (1) 2021.03.12
300x250
반응형

 

 

button 또는 input 등 여러 값을 동시에 받고 싶을때

data-변수명 으로 넣어놓으면

 

 

.data(변수명) 으로 데이터 접근 가능

<button class="btn_test" 
data-data1="값1" data-data2="값2" data-data3="값3" </button>



<script>
$('.btn_test').on('click', function(e)
{
	var data1 = $(this).data('data1');
	var data2 = $(this).data('data2');
	var data3 = $(this).data('data3');    
});
</script>

 

 

[정보가 도움이 되셨다면 광고 배너 클릭이 글쓴이의 활력이 됩니다.]

감사합니다.

300x250
반응형
300x250
반응형

매번 브라우저 캐시를 삭제해야 화면이 갱신 되지만

 

아래와 같이 파라미터를 뒤에 넣게 되면 캐쉬 갱신을 안해도 업데이트가 됨

    <link type="text/css" rel="stylesheet" href="/css/style.css?ts=1569483445">
    <script type="text/javascript" src="/js/jquery.min.js?ts=1569483445"></script>

 

 

[정보가 도움이 되셨다면 광고 배너 클릭이 글쓴이의 활력이 됩니다.]

감사합니다.

300x250
반응형
300x250
반응형

 

 

 

각도기 사이트 주소

https://www.ginifab.com/feeds/angle_measurement/online_protractor.ko.php

 

 

 


 

웹화면에 이미지를 올려서 각도를 잴 수 있습니다.

300x250
반응형

'기타 > 링크' 카테고리의 다른 글

큐티 관련  (0) 2021.10.14
UI 디자인 사이트  (0) 2021.10.07
베이지안 확률  (0) 2021.10.01
https://codepen.io/  (0) 2021.07.06
CSS Animation 링크  (1) 2021.03.12
300x250
반응형

 

 

 

PC 페이지 (공통 include 파일)

session_set_cookie_params(0, '/');
@session_name('mysession');
echo '<br>'.session_id(); 
    
session_start();

 

모바일 페이지(공통 include 파일)

session_set_cookie_params(0, '/');
@session_name('mysession');
echo '<br>'.session_id(); 

session_start();

 

두개 페이지를 넣고 실행 했을때 session_id가 똑같이 나오면 성공

 

 

 

 

그리고 마지막 로그인 처리 때

session_set_cookie_params(0, '/');
@session_name('mysession');
    
session_start();

//로그인 성공 시 저장될 세션 변수 입력
$_SESSION['USERID'] = '아이디';
$_SESSION['LEVEL'] = '등급';

 

모든 session_start(); 시작 앞부분에

위에 2줄을 넣어줘야 합니다 ~

 

 

[정보가 도움이 되셨다면 광고 배너 클릭이 글쓴이의 활력이 됩니다.]

감사합니다.

300x250
반응형

+ Recent posts