OleLoadPicture 在指定視窗上繪製

2021-05-28 11:50:42 字數 1707 閱讀 8931

#include #include #include #include #include "shlwapi.h"

#include #pragma comment(lib, "shlwapi.lib")

#ifndef verify

#ifdef _debug

#define verify _assert

#else

#define verify(f) ((void)(f))

#endif

#endif

void drawimage(

hwnd hwnd, //目標視窗控制代碼

lpctstr szfilepath,//目標檔案 bmp jpg gif ico wmf

bool bdoublebuff=true)//使用雙緩衝

globalunlock(m_hmem);}}

closehandle(hfile);}}

if(m_hmem)

//畫素點尺寸 此處僅為測試使用

#ifndef himetric_per_inch

#define himetric_per_inch 2540

#endif

long npixwidth = muldiv(m_jpegwidth, getdevicecaps(hdc, logpixelsx), himetric_per_inch);

long npixheiht = muldiv(m_jpegheight, getdevicecaps(hdc, logpixelsy), himetric_per_inch);

//繪製

m_ppicture->render(hdc,

0, 0, nwidth, nheight,

0,m_jpegheight, m_jpegwidth, -m_jpegheight,

null);

//新增自定義繪製

#ifndef _stprintf_s

#define _stprintf_s _stprintf

#endif

tchar szbuffer[32];

_stprintf_s(szbuffer, _t("framefreq=%.3ff/s"), fframefreq);

textout(hdc, 0, 0, szbuffer, _tcslen(szbuffer));

}//其它繪製

}//雙緩衝繪製—緩衝區拷貝到目標dc

if(bdoublebuff && hmemdc)

//清理記憶體緩衝

if(hmemdc && holdbitamp)

selectobject(hmemdc, holdbitamp);

if(hbitmap)

deleteobject(hbitmap);

if(hmemdc)

deleteobject(hmemdc);

//釋放有getdc獲取的dc裝置

releasedc(hwnd, hdstdc);

}//釋放m_ppicture

m_ppicture->release();

}//釋放m_pstream

m_pstream->release();

}//釋放記憶體

globalfree(m_hmem);

m_hmem=null;}}

catch(...)

}}

前端雜燴 在工作,在思考,在沉澱

當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講 工作五年,後面四年重複著第一年的活兒。很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇...

前端雜燴 在工作,在思考,在沉澱

當我們沉浸在旺盛的需求之中時,整個人便會成為一台工作的機器,切著類似的頁面,寫著同樣的邏輯,重複著昨天或者上個月做的事情,時間久了,覺得膩味,沒有什麼創新,也沒有明顯的成長。用一句通俗的話來講 工作五年,後面四年重複著第一年的活兒。很多人嘗試跳出這個怪圈,不過基於環境壓力和思維受阻,最後又不得不選擇...

需求在變化,思維在變化

做了這個遠端監控專案,發現開發專案其實相當具有挑戰性的,這種挑戰性主要表現在兩個方面 1 不斷變化的領導需求 或者客戶需求 2 並不熟練甚至並不了解的技術。最近看了一些 瘋狂的程式設計師 還是很羨慕絕影能在大學期間找到自己喜歡的方向,喜歡的事情,把自己喜歡的事情作為自己的工作甚至事業實際上是非常快樂...