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

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

?? btndlg.c

?? MS-Press book about programming under Windows CE with source-codes of examples
?? C
字號:
//======================================================================
// BtnDlg - Button dialog box window code
//
// Written for the book Programming Windows CE
// Copyright (C) 1998 Douglas Boling
//======================================================================
#include <windows.h>                 // For all that Windows stuff
#include <prsht.h>                   // Property sheet includes
#include "DlgDemo.h"                 // Program-specific stuff

extern HINSTANCE hInst;

LRESULT DrawButton (HWND hWnd, LPDRAWITEMSTRUCT pdi);
//----------------------------------------------------------------------
// Global data
//
// Identification strings for various WM_COMMAND notifications
NOTELABELS nlBtn[] = {{TEXT ("BN_CLICKED "),      0},
                      {TEXT ("BN_PAINT   "),      1},
                      {TEXT ("BN_HILITE  "),      2},
                      {TEXT ("BN_UNHILITE"),      3},
                      {TEXT ("BN_DISABLE "),      4},
                      {TEXT ("BN_DOUBLECLICKED"), 5},
                      {TEXT ("BN_SETFOCUS "),     6},
                      {TEXT ("BN_KILLFOCUS"),     7}
};
extern NOTELABELS nlPropPage[];
extern int nPropPageSize;

// Handle for icon used in owner-draw icon
HICON hIcon = 0;
//======================================================================
// BtnDlgProc - Button page dialog box procedure
//
BOOL CALLBACK BtnDlgProc (HWND hWnd, UINT wMsg, WPARAM wParam,
                          LPARAM lParam) {
    TCHAR szOut[128];
    HWND hwndMain;
    INT i;

    switch (wMsg) {

        case WM_INITDIALOG:
            // The generic parameter contains the
            // top-level window handle.
            hwndMain = (HWND)((LPPROPSHEETPAGE)lParam)->lParam;
            // Save the window handle in the window structure.
            SetWindowLong (hWnd, DWL_USER, (LONG)hwndMain);

            // Load icon for owner-draw window.
            hIcon = LoadIcon (hInst, MAKEINTRESOURCE (IDI_BTNICON));

            // We need to set the initial state of the radio buttons.
            CheckRadioButton (hWnd, IDC_RADIO1, IDC_RADIO2, IDC_RADIO1);
            return TRUE;
        //
        // Reflect WM_COMMAND messages to main window.
        //
        case WM_COMMAND:
            // Since the check box is not an auto check box, the button
            // has to be set manually.
            if ((LOWORD (wParam) == IDC_CHKBOX) &&
                (HIWORD (wParam) == BN_CLICKED)) {
                // Get the current state, complement, and set.
                i = SendDlgItemMessage (hWnd, IDC_CHKBOX, BM_GETCHECK,
                                        0, 0);
                if (i)
                    SendDlgItemMessage (hWnd, IDC_CHKBOX, BM_SETCHECK,
                                        0, 0);
                else
                    SendDlgItemMessage (hWnd, IDC_CHKBOX, BM_SETCHECK,
                                        1, 0);
            }


            // Get the handle of the main window from the user word.
            hwndMain = (HWND) GetWindowLong (hWnd, DWL_USER);

            // Look up button notification.
            lstrcpy (szOut, TEXT ("WM_COMMAND: "));
            for (i = 0; i < dim(nlBtn); i++) {
                if (HIWORD (wParam) == nlBtn[i].wNotification) {
                    lstrcat (szOut, nlBtn[i].pszLabel);
                    break;
                }
            }
            if (i == dim(nlBtn))
                wsprintf (szOut, TEXT ("WM_COMMAND notification: %x"),
                          HIWORD (wParam));

            SendMessage (hwndMain, MYMSG_ADDLINE,
                         MAKEWPARAM (LOWORD (wParam),ID_BTNPAGE),
                         (LPARAM)szOut);
            return TRUE;

        //
        // Reflect notify message.
        //
        case WM_NOTIFY:
            // Get the handle of the main window from the user word.
            hwndMain = (HWND) GetWindowLong (hWnd, DWL_USER);

            // Look up notify message.
            for (i = 0; i < nPropPageSize; i++) {
                if (((NMHDR *)lParam)->code ==
                                       nlPropPage[i].wNotification) {
                    lstrcpy (szOut, nlPropPage[i].pszLabel);
                    break;
                }
            }
            if (i == nPropPageSize)
                wsprintf (szOut, TEXT ("Notify code:%d"),
                          ((NMHDR *)lParam)->code);

            SendMessage (hwndMain, MYMSG_ADDLINE,
                         MAKEWPARAM (-1,ID_BTNPAGE), (LPARAM)szOut);

            return FALSE;  // Return false to force default processing.

        case WM_DRAWITEM:
            DrawButton (hWnd, (LPDRAWITEMSTRUCT)lParam);
            return TRUE;
    }
    return FALSE;
}

//---------------------------------------------------------------------
// DrawButton - Draws an owner-draw button.
//
LRESULT DrawButton (HWND hWnd, LPDRAWITEMSTRUCT pdi) {

    HPEN hPenShadow, hPenLight, hPenDkShadow, hOldPen;
    POINT ptOut[3], ptIn[3];
    HBRUSH hBr, hOldBr;
    TCHAR szOut[128];
    HWND hwndMain;
    LOGPEN lpen;

    // Get the handle of the main window from the user word.
    hwndMain = (HWND) GetWindowLong (hWnd, DWL_USER);

    // Reflect the messages to the report window.
    wsprintf (szOut, TEXT ("WM_DRAWITEM  Action:%x  State:%x"),
              pdi->itemAction, pdi->itemState);

    SendMessage (hwndMain, MYMSG_ADDLINE,
                 MAKEWPARAM (pdi->CtlID, ID_BTNPAGE),
                 (LPARAM)szOut);

    // Create pens for drawing.
    lpen.lopnStyle = PS_SOLID;
    lpen.lopnWidth.x = 3;
    lpen.lopnWidth.y = 3;
    lpen.lopnColor = GetSysColor (COLOR_3DSHADOW);
    hPenShadow = CreatePenIndirect (&lpen);

    lpen.lopnWidth.x = 1;
    lpen.lopnWidth.y = 1;
    lpen.lopnColor = GetSysColor (COLOR_3DLIGHT);
    hPenLight = CreatePenIndirect (&lpen);

    lpen.lopnColor = GetSysColor (COLOR_3DDKSHADOW);
    hPenDkShadow = CreatePenIndirect (&lpen);

    // Create a brush for the face of the button.
    hBr = CreateSolidBrush (GetSysColor (COLOR_3DFACE));

    // Draw a rectangle with a thick outside border to start the
    // frame drawing.
    hOldPen = SelectObject (pdi->hDC, hPenShadow);
    hOldBr = SelectObject (pdi->hDC, hBr);
    Rectangle (pdi->hDC, pdi->rcItem.left, pdi->rcItem.top,
               pdi->rcItem.right, pdi->rcItem.bottom);

    // Draw the upper left inside line.
    ptIn[0].x = pdi->rcItem.left + 1;
    ptIn[0].y = pdi->rcItem.bottom - 3;
    ptIn[1].x = pdi->rcItem.left + 1;
    ptIn[1].y = pdi->rcItem.top + 1;
    ptIn[2].x = pdi->rcItem.right - 3;
    ptIn[2].y = pdi->rcItem.top+1;

    // Select a pen to draw shadow or light side of button.
    if (pdi->itemState & ODS_SELECTED) {
        SelectObject (pdi->hDC, hPenDkShadow);
    } else {
        SelectObject (pdi->hDC, hPenLight);
    }
    Polyline (pdi->hDC, ptIn, 3);

    // If selected, also draw a bright line inside the lower
    // right corner.
    if (pdi->itemState & ODS_SELECTED) {
        SelectObject (pdi->hDC, hPenLight);
        ptIn[1].x = pdi->rcItem.right- 3;
        ptIn[1].y = pdi->rcItem.bottom - 3;
        Polyline (pdi->hDC, ptIn, 3);
    }
    // Now draw the black outside line on either the upper left or lower
    // right corner.
    ptOut[0].x = pdi->rcItem.left;
    ptOut[0].y = pdi->rcItem.bottom-1;
    ptOut[2].x = pdi->rcItem.right-1;
    ptOut[2].y = pdi->rcItem.top;

    SelectObject (pdi->hDC, hPenDkShadow);
    if (pdi->itemState & ODS_SELECTED) {
        ptOut[1].x = pdi->rcItem.left;
        ptOut[1].y = pdi->rcItem.top;
    } else {
        ptOut[1].x = pdi->rcItem.right-1;
        ptOut[1].y = pdi->rcItem.bottom-1;
    }
    Polyline (pdi->hDC, ptOut, 3);

    // Draw the icon.
    if (hIcon) {
        ptIn[0].x = (pdi->rcItem.right - pdi->rcItem.left)/2 -
                     GetSystemMetrics (SM_CXICON)/2 - 2;
        ptIn[0].y = (pdi->rcItem.bottom - pdi->rcItem.top)/2 -
                     GetSystemMetrics (SM_CYICON)/2 - 2;
        // If pressed, shift image down one pel to simulate the press.
        if (pdi->itemState & ODS_SELECTED) {
            ptOut[1].x += 2;
            ptOut[1].y += 2;
        }
        DrawIcon (pdi->hDC, ptIn[0].x, ptIn[0].y, hIcon);
    }

    // If button has the focus, draw the dotted rect inside the button.
    if (pdi->itemState & ODS_FOCUS) {
        pdi->rcItem.left += 3;
        pdi->rcItem.top += 3;
        pdi->rcItem.right -= 4;
        pdi->rcItem.bottom -= 4;
        DrawFocusRect (pdi->hDC, &pdi->rcItem);
    }

    // Clean up. First select the original brush and pen into the DC.
    SelectObject (pdi->hDC, hOldBr);
    SelectObject (pdi->hDC, hOldPen);

    // Now delete the brushes and pens created.
    DeleteObject (hBr);
    DeleteObject (hPenShadow);
    DeleteObject (hPenDkShadow);
    DeleteObject (hPenLight);
    return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕在线不卡国产视频| 337p日本欧洲亚洲大胆精品| 国产激情视频一区二区在线观看 | 欧美日韩一卡二卡三卡| 91美女片黄在线| 色噜噜狠狠色综合欧洲selulu| aaa欧美大片| 91在线观看一区二区| 91亚洲国产成人精品一区二三 | 国产精品二三区| 亚洲精品日产精品乱码不卡| 一区二区三区在线免费视频| 亚洲国产一区二区三区| 婷婷成人激情在线网| 久久精品噜噜噜成人88aⅴ| 美女视频黄a大片欧美| 黑人巨大精品欧美黑白配亚洲| 欧美成人乱码一区二区三区| 久久网这里都是精品| 久久久久国产一区二区三区四区| 国产亚洲午夜高清国产拍精品| 欧美日本在线看| 欧美日精品一区视频| 欧美一区二区在线视频| 欧美mv日韩mv| 中文字幕一区日韩精品欧美| 一区二区三区欧美久久| 美女视频黄免费的久久| 国产99一区视频免费| 欧美天堂亚洲电影院在线播放| 宅男在线国产精品| 国产精品水嫩水嫩| 午夜一区二区三区视频| 国产成人在线影院| 欧美午夜精品久久久久久超碰| 欧美变态tickle挠乳网站| 国产精品久久久久久久久图文区| 亚洲成国产人片在线观看| 国产精品一品二品| 欧美丰满嫩嫩电影| 国产精品九色蝌蚪自拍| 麻豆成人在线观看| 日本精品一级二级| 久久婷婷国产综合国色天香| 一级女性全黄久久生活片免费| 九九**精品视频免费播放| 在线国产亚洲欧美| 国产网红主播福利一区二区| 首页国产欧美久久| 91在线国产福利| 中文字幕不卡的av| 美女尤物国产一区| 欧美精品久久99| 最新不卡av在线| 国产一区二区三区在线观看免费视频| 欧美制服丝袜第一页| 亚洲成人777| 在线观看日韩av先锋影音电影院| 久久精品欧美一区二区三区不卡| 免费观看久久久4p| 欧美无人高清视频在线观看| 中文字幕中文字幕在线一区| 国产精品亚洲午夜一区二区三区 | 国产一区二区成人久久免费影院| 欧美日韩亚洲综合一区二区三区 | 一区二区理论电影在线观看| 国产一区999| 日韩午夜精品电影| 亚洲一区免费观看| 99re视频精品| 亚洲精品日产精品乱码不卡| 99久精品国产| 亚洲免费观看高清完整版在线观看| 国产精品夜夜爽| 国产精品免费免费| 成a人片国产精品| 中文字幕中文在线不卡住| 国产精品一品视频| 中文字幕中文字幕中文字幕亚洲无线| 国产凹凸在线观看一区二区| 久久婷婷色综合| 成人高清视频在线观看| 国产精品久久久一区麻豆最新章节| 国产精品一区二区三区乱码| 国产精品天干天干在观线| 欧美女孩性生活视频| 亚洲国产精品影院| 在线成人av网站| 国内国产精品久久| 欧美国产1区2区| 在线影视一区二区三区| 亚洲高清三级视频| 精品理论电影在线| 成人美女在线观看| 亚洲国产精品久久不卡毛片| 5858s免费视频成人| 国内精品久久久久影院一蜜桃| 久久久不卡网国产精品一区| kk眼镜猥琐国模调教系列一区二区 | 国产精品盗摄一区二区三区| 91小视频免费观看| 亚洲高清一区二区三区| 久久亚洲私人国产精品va媚药| 成人开心网精品视频| 亚洲午夜久久久久久久久电影院 | 久久久亚洲综合| 色婷婷久久综合| 久久 天天综合| 亚洲女人小视频在线观看| 91 com成人网| 福利视频网站一区二区三区| 亚洲一区二区三区中文字幕| 欧美精品一区二区高清在线观看| 成a人片亚洲日本久久| 三级精品在线观看| 国产精品久久久久久户外露出| 欧美年轻男男videosbes| 成人激情免费电影网址| 亚洲成人综合在线| 成人欧美一区二区三区白人 | 亚洲视频香蕉人妖| 欧美成人猛片aaaaaaa| 欧美伊人久久大香线蕉综合69 | 91在线视频免费观看| 久久超级碰视频| 亚洲成av人在线观看| 日韩二区三区在线观看| 中文字幕日本不卡| 日韩欧美一二区| 欧美日韩精品欧美日韩精品一综合| 国产成人在线视频免费播放| 免费成人性网站| 亚洲成a人v欧美综合天堂| 亚洲日本在线视频观看| 国产三级一区二区| 精品播放一区二区| 欧美一区二区免费| 欧美日韩国产一二三| 欧洲精品一区二区| 91丨九色porny丨蝌蚪| 波多野结衣在线一区| 国产一本一道久久香蕉| 另类中文字幕网| 爽爽淫人综合网网站| 午夜久久福利影院| 亚洲午夜精品17c| 亚洲一区二区三区四区在线观看| 亚洲美女视频在线| 亚洲同性gay激情无套| 国产精品国产a| 国产精品热久久久久夜色精品三区| 2021中文字幕一区亚洲| 欧美精品一区二区三区视频| 日韩女优视频免费观看| 久久综合色之久久综合| 精品福利一二区| 国产清纯美女被跳蛋高潮一区二区久久w | 成人动漫一区二区在线| 成人性生交大合| www.色综合.com| 日本精品一级二级| 欧美视频在线一区| 欧美一二三四区在线| 精品国产百合女同互慰| 亚洲国产精品t66y| √…a在线天堂一区| 亚洲小少妇裸体bbw| 亚洲成人免费观看| 久久精品国产99久久6| 国产一区二区主播在线| 成人黄页在线观看| 欧美系列一区二区| 欧美一区二区三区电影| 久久精品无码一区二区三区| 中文字幕不卡的av| 亚洲综合在线电影| 久久成人免费日本黄色| gogogo免费视频观看亚洲一| 欧美视频在线一区二区三区| 精品国产人成亚洲区| 一区在线中文字幕| 亚洲成人资源在线| 色av成人天堂桃色av| 欧美一区在线视频| 国产精品日日摸夜夜摸av| 亚洲高清免费观看高清完整版在线观看 | 夜夜爽夜夜爽精品视频| 久久精品国产99国产精品| a美女胸又www黄视频久久| 欧美精品在线视频| 国产视频视频一区| 日韩成人dvd| 99re热这里只有精品免费视频 | 激情av综合网| 欧美伊人精品成人久久综合97| 精品国产成人系列| 亚洲国产成人高清精品| 福利91精品一区二区三区| 欧美美女直播网站| **性色生活片久久毛片|