亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? status.c

?? 也是關于VB的,不知道對你們有沒有用處.是我下的.
?? C
字號:
/**************************************************************************
 *
 *  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
 *  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
 *  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
 *  PURPOSE.
 *
 *  Copyright (C) 1992 - 1996 Microsoft Corporation.  All Rights Reserved.
 *
 **************************************************************************/
/****************************************************************************
 *
 *   status.c: Status bar window
 *
 *   Vidcap32 Source code
 *
 ***************************************************************************/

#include <windows.h>
#include <windowsx.h>
//#include <win32.h>
#include <mmsystem.h>
#include "status.h"

/* for compiling under win3.0 - we don't have this attribute */
#ifndef COLOR_BTNHIGHLIGHT
#define COLOR_BTNHIGHLIGHT 20
#endif

#ifdef _WIN32
typedef WNDPROC LPWNDPROC;
#else
typedef long (FAR PASCAL *LPWNDPROC)();
#endif



// class names for status bar and static text windows
char	szStatusClass[] = "StatusClass";
char	szText[]   = "SText";
int gStatusStdHeight;   // based on font metrics

static HANDLE ghFont;
static HBRUSH ghbrHL, ghbrShadow;


/* Function Prototypes */
LONG FAR PASCAL statusWndProc(HWND hwnd, unsigned msg,
						UINT wParam, LONG lParam);
LONG FAR PASCAL fnText(HWND, unsigned, UINT, LONG);
static VOID NEAR PASCAL PaintText(HWND hwnd, HDC hdc);




/*
 * create the brushes we need
 */
void
statusCreateTools(void)
{
    HDC hdc;
    TEXTMETRIC tm;
    HFONT hfont;

    ghbrHL = CreateSolidBrush(GetSysColor(COLOR_BTNHIGHLIGHT));
    ghbrShadow = CreateSolidBrush(GetSysColor(COLOR_BTNSHADOW));

    /* Create the font we'll use for the status bar - use system as default */
    ghFont = CreateFont(12, 0,		// height, width
                0, 0,			// escapement, orientation
                FW_NORMAL,		// weight,
                FALSE, FALSE, FALSE,	// attributes
                ANSI_CHARSET,		// charset
                OUT_DEFAULT_PRECIS,	// output precision
                CLIP_DEFAULT_PRECIS,	// clip precision
                DEFAULT_QUALITY,	// quality
                VARIABLE_PITCH | FF_MODERN,
                "Helv");

    if (ghFont == NULL) {
        ghFont = GetStockObject(SYSTEM_FONT);
    }

    // find the char size to calc standard status bar height
    hdc = GetDC(NULL);
    hfont = SelectObject(hdc, ghFont);
    GetTextMetrics(hdc, &tm);
    SelectObject(hdc, hfont);
    ReleaseDC(NULL, hdc);

    gStatusStdHeight = tm.tmHeight * 3 / 2;

}

void
statusDeleteTools(void)
{
    DeleteObject(ghbrHL);
    DeleteObject(ghbrShadow);

    DeleteObject(ghFont);
}




/*--------------------------------------------------------------+
| statusInit - initialize for status window, register the	|
|	       Window's class.					|
|								|
+--------------------------------------------------------------*/
#pragma alloc_text(INIT_TEXT, statusInit)
BOOL statusInit(HANDLE hInst, HANDLE hPrev)
{
  WNDCLASS  cls;

  statusCreateTools();

  if (!hPrev){
	  cls.hCursor		= LoadCursor(NULL, IDC_ARROW);
	  cls.hIcon		= NULL;
	  cls.lpszMenuName	= NULL;
	  cls.lpszClassName	= szStatusClass;
	  cls.hbrBackground     = (HBRUSH) (COLOR_BTNFACE + 1);
	  cls.hInstance		= hInst;
	  cls.style		= CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
	  cls.lpfnWndProc	= statusWndProc;
	  cls.cbClsExtra	= 0;
	  cls.cbWndExtra	= 0;
	
	  if (!RegisterClass(&cls))
		  return FALSE;

	  cls.hCursor        = LoadCursor(NULL,IDC_ARROW);
	  cls.hIcon          = NULL;
	  cls.lpszMenuName   = NULL;
	  cls.lpszClassName  = (LPSTR)szText;
	  cls.hbrBackground  = (HBRUSH) (COLOR_BTNFACE + 1);
	  cls.hInstance      = hInst;
	  cls.style          = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
	  cls.lpfnWndProc    = (LPWNDPROC)fnText;
	  cls.cbClsExtra     = 0;
	  cls.cbWndExtra     = 0;
	  if (!RegisterClass(&cls))
		return FALSE;
  }


  return TRUE;
}

/*
 * returns the recommended height for a status bar based on the
 * character dimensions of the font used
 */
int
statusGetHeight(void)
{
    return(gStatusStdHeight);
}


/*--------------------------------------------------------------+
| statusUpdateStatus - update the status line			|
|								|
| The argument can either be NULL, a string, or a resource ID	|
| cast to a LPCSTR with MAKEINTRESOURCE.			|
+--------------------------------------------------------------*/
void statusUpdateStatus(HWND hwnd, LPCSTR lpsz)
{
    char	ach[80];
    HWND hwndtext;

    if ((lpsz != NULL) && (HIWORD((DWORD) lpsz) == 0)) {
	LoadString(GetWindowInstance(hwnd), LOWORD((DWORD) lpsz), ach, sizeof(ach));
	lpsz = ach;
    }

    hwndtext = GetDlgItem(hwnd, 1);
    if (!lpsz || *lpsz == '\0') {
	SetWindowText(hwndtext,"");
    } else {
	SetWindowText(hwndtext, lpsz);
    }
}

/*--------------------------------------------------------------+
| statusWndProc - window proc for status window			|
|								|
+--------------------------------------------------------------*/
LONG FAR PASCAL 
statusWndProc(HWND hwnd, unsigned msg, UINT wParam, LONG lParam)
{
  PAINTSTRUCT	ps;
  HDC		hdc;
  HWND          hwndSText;

  switch(msg){
    case WM_CREATE:
	
	    /* we need to create the static text control for the status bar */
	    hwndSText = CreateWindow(
                            szText,
                            "",
                            WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS,
		            0, 0, 0, 0,
                            hwnd,
                            (HMENU) 1,  // child id
                            GetWindowInstance(hwnd),
                            NULL);

	    if (!hwndSText) {
		    return -1;
            }
	    break;
	
    case WM_DESTROY:
            statusDeleteTools();
	    break;
	
    case WM_SIZE:
        {
            RECT rc;

            GetClientRect(hwnd, &rc);

            MoveWindow(
                GetDlgItem(hwnd, 1),    // get child window handle
                2, 1,                   // xy just inside
                rc.right - 4,
                rc.bottom - 2,
                TRUE);

	    break;
        }

    case WM_PAINT:
	    hdc = BeginPaint(hwnd, &ps);

            // only the background and the child window need painting

	    EndPaint(hwnd, &ps);
	    break;

    case WM_SYSCOLORCHANGE:
        statusDeleteTools();
        statusCreateTools();
        break;

    case WM_ERASEBKGND:
        break;

  }
  return DefWindowProc(hwnd, msg, wParam, lParam);
}

/*
 * window proc for static text window
 */
LONG FAR PASCAL 
fnText(HWND hwnd, UINT msg, UINT wParam, LONG lParam )
{
	PAINTSTRUCT ps;

	switch (msg) {
	case WM_SETTEXT:
		DefWindowProc(hwnd, msg, wParam, lParam);
		InvalidateRect(hwnd,NULL,FALSE);
		UpdateWindow(hwnd);
		return 0L;

	case WM_ERASEBKGND:
		return 0L;

	case WM_PAINT:
		BeginPaint(hwnd, &ps);
		PaintText(hwnd, ps.hdc);
		EndPaint(hwnd, &ps);
		return 0L;
        }

	return DefWindowProc(hwnd, msg, wParam, lParam);
}

/*--------------------------------------------------------------+
| PaintText - paint the shadowed static text field.		|
|								|
+--------------------------------------------------------------*/
VOID NEAR PASCAL
PaintText(HWND hwnd, HDC hdc)
{
  RECT rc;
  char        ach[128];
  int  len;
  int	dx, dy;
  RECT	rcFill;
  HFONT	hfontOld;
  HBRUSH hbrSave;

  GetClientRect(hwnd, &rc);

  len = GetWindowText(hwnd,ach,sizeof(ach));

  SetBkColor(hdc, GetSysColor(COLOR_BTNFACE));
  SetTextColor(hdc, GetSysColor(COLOR_BTNTEXT));

  hfontOld = SelectObject(hdc, ghFont);

  rcFill.left = rc.left + 1;
  rcFill.right = rc.right - 1;
  rcFill.top = rc.top + 1;
  rcFill.bottom = rc.bottom - 1;

  /* move in some and do background and text in one swoosh */
  ExtTextOut(hdc,4,1,ETO_OPAQUE,&rcFill,ach,len,NULL);

  dx = rc.right - rc.left;
  dy = rc.bottom - rc.top;

  hbrSave = SelectObject(hdc, ghbrShadow);
  PatBlt(hdc, rc.left, rc.top, 1, dy, PATCOPY);
  PatBlt(hdc, rc.left, rc.top, dx, 1, PATCOPY);

  SelectObject(hdc, ghbrHL);
  PatBlt(hdc, rc.right-1, rc.top+1, 1, dy-1, PATCOPY);
  PatBlt(hdc, rc.left+1, rc.bottom -1, dx-1, 1,  PATCOPY);

  if (hfontOld)
	  SelectObject(hdc, hfontOld);
  if (hbrSave)
	  SelectObject(hdc, hbrSave);
  return ;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频日韩视频| 久久电影网站中文字幕| 久久久一区二区三区| 日韩精品一区二区三区视频在线观看| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 日本一区二区三区视频视频| 欧美一区二区三区婷婷月色| 4438亚洲最大| 精品国产123| 中文字幕欧美激情| 综合久久久久久| 亚洲一区二区三区三| 亚洲午夜久久久久久久久久久| 无码av免费一区二区三区试看| 视频一区在线播放| 激情丁香综合五月| 成人av在线观| 欧美日韩一区二区三区四区五区| 精品视频资源站| 欧美成人a视频| 国产欧美一区二区精品性色| 综合欧美一区二区三区| 亚洲不卡在线观看| 久久 天天综合| 91啪九色porn原创视频在线观看| 欧美午夜精品理论片a级按摩| 欧美精品第1页| 久久久久久免费网| 亚洲影视资源网| 久久精品国产精品亚洲红杏| 成人免费视频一区| 欧美性色aⅴ视频一区日韩精品| 制服丝袜激情欧洲亚洲| 国产精品麻豆视频| 日本中文字幕一区二区有限公司| 成人午夜在线播放| 69堂精品视频| 中文字幕在线不卡视频| 奇米四色…亚洲| 97se狠狠狠综合亚洲狠狠| 91精品国模一区二区三区| 欧美国产日韩a欧美在线观看| 亚洲国产另类av| 岛国av在线一区| 日韩一区二区三区三四区视频在线观看| 国产嫩草影院久久久久| 天堂成人国产精品一区| av成人老司机| 国产亚洲精品资源在线26u| 无码av中文一区二区三区桃花岛| 成人免费视频免费观看| 欧美精品一区二区三区在线播放| 一区二区三区在线视频观看| 国产成人av网站| 91精品国产综合久久久久久久 | 岛国av在线一区| 日韩精品专区在线影院重磅| 怡红院av一区二区三区| 精品一区二区三区免费毛片爱| 色国产综合视频| 中文字幕va一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 欧美大度的电影原声| 亚洲自拍偷拍麻豆| 91免费看视频| 亚洲日本电影在线| av在线不卡电影| 一区二区三区美女视频| 播五月开心婷婷综合| 久久精品免视看| 国产成人av电影免费在线观看| 精品国产青草久久久久福利| 美女网站一区二区| 日韩精品专区在线| 久久99精品国产91久久来源| 日韩一区二区三区在线视频| 免费的成人av| 欧美成人a视频| 国产精品综合在线视频| 国产亚洲午夜高清国产拍精品| 激情欧美日韩一区二区| 日本一区二区三区久久久久久久久不 | 精品国产凹凸成av人网站| 国产在线播精品第三| 精品国产免费人成电影在线观看四季 | 国产精品美女一区二区| 9久草视频在线视频精品| 亚洲色图制服丝袜| 在线观看视频91| 日本成人中文字幕在线视频| 91精品欧美综合在线观看最新 | 久久久综合激的五月天| 国产成人av电影在线观看| 中文字幕第一区综合| 91影院在线免费观看| 亚洲最大成人网4388xx| 91精品国产综合久久福利软件| 另类小说视频一区二区| 中文字幕av一区 二区| 色综合久久久网| 日韩精品一区第一页| 欧美一级一级性生活免费录像| 麻豆精品精品国产自在97香蕉| 久久久久久久久免费| 日本韩国一区二区三区视频| 日韩精品高清不卡| 国产精品你懂的在线| 欧美三级日韩三级国产三级| 久久 天天综合| 中文字幕在线观看一区| 日韩欧美亚洲另类制服综合在线| 国产.欧美.日韩| 婷婷久久综合九色综合绿巨人| 久久午夜色播影院免费高清| 日本精品一级二级| 九色|91porny| 亚洲超丰满肉感bbw| 日本一二三不卡| 日韩欧美亚洲一区二区| 91在线国内视频| 国产在线麻豆精品观看| 亚洲尤物在线视频观看| 中文一区二区在线观看| 日韩一区二区三区四区五区六区| 不卡大黄网站免费看| 久久成人免费网| 亚洲一区二区影院| 国产精品久久久久四虎| 日韩欧美一区二区在线视频| 日本高清无吗v一区| 国产盗摄精品一区二区三区在线| 亚洲高清三级视频| 成人免费在线视频观看| 久久久国产午夜精品| 日韩女优av电影| 欧美日韩在线亚洲一区蜜芽| www.亚洲免费av| 国产99久久久精品| 国产一区二区三区免费播放| 日本网站在线观看一区二区三区 | 日韩免费观看高清完整版在线观看| 99久久国产综合精品女不卡| 粉嫩嫩av羞羞动漫久久久 | 久久这里只有精品6| 777午夜精品免费视频| 欧美四级电影网| 欧美性色黄大片| 欧美色男人天堂| 91福利小视频| 欧美三级在线视频| 欧美日韩免费一区二区三区| 色婷婷亚洲婷婷| 欧美专区亚洲专区| 在线观看一区二区视频| 欧洲精品一区二区| 欧美自拍偷拍一区| 欧美色爱综合网| 欧美精品在线观看播放| 欧美日韩视频不卡| 91.com视频| 日韩午夜电影在线观看| 日韩西西人体444www| 26uuu成人网一区二区三区| 久久精品日韩一区二区三区| 久久精品无码一区二区三区| 国产女人水真多18毛片18精品视频| 国产人久久人人人人爽| 中文字幕在线观看一区二区| 一区二区三区免费在线观看| 天天综合色天天综合| 老司机精品视频一区二区三区| 国产精品原创巨作av| av亚洲精华国产精华精华| 欧美在线观看视频一区二区 | 国产中文字幕一区| 国产成人激情av| 在线观看91视频| 97aⅴ精品视频一二三区| 在线免费观看日本欧美| 91精品国产综合久久精品图片| 26uuu精品一区二区三区四区在线| 欧美极品少妇xxxxⅹ高跟鞋 | 国产xxx精品视频大全| 99精品视频免费在线观看| 欧美日韩情趣电影| 久久亚洲捆绑美女| 亚洲自拍偷拍图区| 国产一区二区三区最好精华液| 99久久精品免费观看| 欧美一区二区在线播放| 国产精品久久久久久亚洲伦| 亚洲成人tv网| 国产成人8x视频一区二区| 精品视频1区2区3区| 国产网站一区二区| 偷窥国产亚洲免费视频| av不卡一区二区三区| 日韩午夜精品电影| 亚洲女同女同女同女同女同69| 麻豆久久久久久|