ライブプレビューのカスタマイズ
タスクバーのサムネイルにマウスカーソルを乗せると表示されるライブプレビューをカスタマイズします。
最終更新:2017/11/18
初版:2017/11/18
HRESULT WINAPI DwmSetIconicLivePreviewBitmap( HWND hwnd, HBITMAP hbmp, _In_opt_ POINT *pptClient, DWORD dwSITFlags );hwnd に変更するウィンドウハンドルを指定します。
値 | 意味 |
---|---|
0(0x00000000) | ライブプレビューの周りにフレームを表示しない |
DWM_SIT_DISPLAYFRAME(0x00000001) | ライブプレビューの周りにフレームを表示する |
Before | After |
---|
//HSP3.5から対応 //(c) inonote 2017 #packopt name "ライブプレビュー置き換え" #include "gdi32.as" #include "user32.as" #uselib "dwmapi.dll" #func DwmSetIconicLivePreviewBitmap "DwmSetIconicLivePreviewBitmap" int, int, int, int #func DwmSetWindowAttribute "DwmSetWindowAttribute" int, int, int, int #define BI_RGB 0 #define SRCCOPY 0x00CC0020 #define DWM_SIT_DISPLAYFRAME 0x00000001 #define WM_DWMSENDICONICLIVEPREVIEWBITMAP 0x0326 #enum DWMWA_NCRENDERING_ENABLED = 1 #enum DWMWA_NCRENDERING_POLICY #enum DWMWA_TRANSITIONS_FORCEDISABLED #enum DWMWA_ALLOW_NCPAINT #enum DWMWA_CAPTION_BUTTON_BOUNDS #enum DWMWA_NONCLIENT_RTL_LAYOUT #enum DWMWA_FORCE_ICONIC_REPRESENTATION #enum DWMWA_FLIP3D_POLICY #enum DWMWA_EXTENDED_FRAME_BOUNDS #enum DWMWA_HAS_ICONIC_BITMAP #enum DWMWA_DISALLOW_PEEK #enum DWMWA_EXCLUDED_FROM_PEEK #enum DWMWA_CLOAK #enum DWMWA_CLOAKED #enum DWMWA_FREEZE_REPRESENTATION #enum DWMWA_LAST buffer 1 //ライブプレビュー用画像バッファ color 122, 0, 122:boxf color 0, 0, 0:font "MS 明朝", 128 mes "ライブ\nプレビュー\n置き換え済" screen 0 color 122, 255, 122:boxf color 0, 0, 0:font "MS ゴシック", 128 mes "あいうえお" oncmd gosub *OnSendIconicLivePreviewBitmap, WM_DWMSENDICONICLIVEPREVIEWBITMAP // ウィンドウの属性を変更してライブプレビューを変更できるようにする trueValue=1 DwmSetWindowAttribute hwnd, DWMWA_FORCE_ICONIC_REPRESENTATION, varptr(trueValue), 4 DwmSetWindowAttribute hwnd, DWMWA_HAS_ICONIC_BITMAP, varptr(trueValue), 4 stop *OnSendIconicLivePreviewBitmap //Aeroプレビュービットマップを求めた SetIconicLivePreviewBitmapFromBuffer hwnd, 1 return 0 //SetIconicLivePreviewBitmapFromBuffer ウィンドウハンドル, バッファID #deffunc SetIconicLivePreviewBitmapFromBuffer int hnd, int bufferid dim Rect, 4 oldbufferid = ginfo_sel gsel bufferid Rect = 0, 0, ginfo_sx, ginfo_sy //ライブプレビュー用 32bit ビットマップ作成 imagesize = Rect(2)*Rect(3)*4 bmi = 40, Rect(2), Rect(3), 1|(32<<16),BI_RGB, imagesize hdc_livepre = CreateCompatibleDC(0) //デバイスコンテキスト作成 hbmp_livepre = CreateDIBSection(0, varptr(bmi), 0, varptr(lpBits), 0, 0) //ビットマップ作成 if (hbmp_livepre){ hOldBmp1 = SelectObject(hdc_livepre, hbmp_livepre) BitBlt hdc_livepre, 0, 0, Rect(2), Rect(3), hdc, 0, 0, SRCCOPY //HSPの仮想スクリーンからコピー //後片付け SelectObject hdc_livepre, hOldBmp1 } DeleteDC hdc_livepre DwmSetIconicLivePreviewBitmap hnd, hbmp_livepre, varptr(Rect), DWM_SIT_DISPLAYFRAME //ライブプレビュービットマップを設定 DeleteObject hbmp_livepre gsel oldbufferid return
(C)2019 inonote / 無断転載禁止