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

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

?? sciproc.c

?? 計算器源代碼c。和windows自帶的功能差不多。很多科學計算還沒有加入。
?? C
字號:
/**************************************************************************/
/*** SCICALC Scientific Calculator for Windows 3.00.12                  ***/
/*** By Kraig Brockschmidt, Microsoft Co-op, Contractor, 1988-1989      ***/
/*** (c)1989 Microsoft Corporation.  All Rights Reserved.               ***/
/***                                                                    ***/
/*** sciproc.c                                                          ***/
/***                                                                    ***/
/*** Functions contained:                                               ***/
/***    CalcWndProc--Main window procedure.                             ***/
/***                                                                    ***/
/*** Functions called:                                                  ***/
/***    SetRadix,                                                       ***/
/***    ProcessCommands.                                                ***/
/***                                                                    ***/
/*** Last modification Fri  08-Dec-1989                                 ***/
/*** -by- Amit Chatterjee. [amitc]                                      ***/
/*** Last modification July-21-1994                                     ***/
/*** -by- Arthur Bierer [t-arthb] or abierer@ucsd.edu                   ***/
/***                                                                    ***/
/*** Modified WM_PAINT processing to display ghnoLastNum rather than    ***/
/*** ghnoNum if the last key hit was an operator.                       ***/
/***                                                                    ***/
/**************************************************************************/

#include "scicalc.h"
#include "calchelp.h"

extern HWND     hStatBox;
extern HBRUSH   hBrushBk;
extern BOOL     bFocus, bError;
extern TCHAR    szDec[5], *rgpsz[CSTRINGS];
extern HNUMOBJ  ghnoNum, ghnoLastNum;
extern INT      nTempCom ;
extern INT      gnPendingError ;
extern BOOL     gbRecord;


BOOL FireUpPopupMenu( HWND hwnd, HINSTANCE hInstanceWin, LPARAM lParam)
{
    HMENU hmenu;

    if ((hmenu = LoadMenu(hInstanceWin, MAKEINTRESOURCE(IDM_HELPPOPUP))))
    {
        int cmd = TrackPopupMenuEx(GetSubMenu(hmenu, 0),
            TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RETURNCMD | TPM_RIGHTBUTTON,
            LOWORD(lParam), HIWORD(lParam), hwnd, NULL);
        DestroyMenu(hmenu);
        return ( cmd == HELP_CONTEXTPOPUP ) ? TRUE : FALSE;

    }
    else
        return FALSE;
}

LRESULT APIENTRY CalcWndProc (
HWND           hWnd,
UINT           iMessage,
WPARAM         wParam,
LPARAM         lParam)
{
    INT         nID, nTemp;       /* Return value from GetKey & temp.  */
    HANDLE      hTempBrush; // a brush to play with in WM_CTLCOLORSTATIC

    switch (iMessage)
    {
        case WM_INITMENUPOPUP:
            /* Gray out the PASTE option if CF_TEXT is not available.     */
            /* nTemp is used here so we only call EnableMenuItem once.    */
            if (!IsClipboardFormatAvailable(CF_TEXT))
                nTemp=MF_GRAYED | MF_DISABLED;
            else
                nTemp=MF_ENABLED;

            EnableMenuItem(GetMenu(hWnd),IDM_PASTE, nTemp);
            break;

        case WM_CONTEXTMENU:
            // If the user clicked on the dialog face and not one of the
            // buttons then do nothing.  If the id of the button is IDC_STATIC
            // then do nothing. 

            if ( (HWND)wParam == g_hwndDlg )
            {
                // check for clicks on disabled buttons.  These aren't seen 
                // by WindowFromPoint but are seen by ChildWindowFromPoint.
                // As a result, the value of wParam will be g_hwndDlg 
                // if the WM_RBUTTONUP event occured on a disabled button.

                POINT pt;
                HWND  hwnd;

                // convert from short values to long values
                pt.x = MAKEPOINTS(lParam).x;   
                pt.y = MAKEPOINTS(lParam).y;

                // then convert to client coordinates
                ScreenToClient( g_hwndDlg, &pt );  

                hwnd = ChildWindowFromPoint( g_hwndDlg, pt );

                if ( !hwnd || (hwnd == g_hwndDlg) || 
                     (IDC_STATIC == GetDlgCtrlID( hwnd )))
                {
                    return (DefWindowProc(hWnd, iMessage, wParam, lParam));
                }

                wParam = (WPARAM)hwnd;
            }

            if ( FireUpPopupMenu( g_hwndDlg, hInst, lParam ) )
            {
                nID = GetDlgCtrlID( (HWND)wParam );

                WinHelp((HWND) wParam, rgpsz[IDS_HELPFILE], HELP_CONTEXTPOPUP,
                        GetHelpID( nID ));
            }
            break;

        case WM_HELP:
            HtmlHelp(GetDesktopWindow(), rgpsz[IDS_CHMHELPFILE], HH_DISPLAY_TOPIC, 0L);
            return 0;

        case WM_COMMAND: /* Interpret all buttons on calculator.          */
        {
            WORD wNotifyCode = HIWORD(wParam); // notification code
            WORD wID = LOWORD(wParam);         // item, control, or accelerator identifier

            // the accelerator table feeds us IDC_MOD in response to the 
            // "%" key.  This same accelerator is used for the percent function
            // in Standard view so translate here.

            if ( (wID == IDC_MOD) && (nCalc == 1) )
                wID = IDC_PERCENT;

            // when we get an accelerator keystroke we fake a button press to provide feedback
            if ( wNotifyCode == 1 )
            {
                // For an accelerator the hwnd is not passed in the lParam so ask the dialog
                HWND hwndCtl = GetDlgItem( g_hwndDlg, wID );
                SendMessage( hwndCtl, BM_SETSTATE, 1, 0 );  // push the button down
                Sleep( 20 );                                // wait a bit
                SendMessage( hwndCtl, BM_SETSTATE, 0, 0 );  // push the button up
            }

            // we turn on notify for the text controls to automate the handling of context
            // help but we don't care about any commands we recieve from these controls. As
            // a result, only process commands that are not from a text control.
            if ( (wID != IDC_DISPLAY) && (wID != IDC_MEMTEXT) && (wID != IDC_PARTEXT) )
                ProcessCommands(wID);
            break;
        }

        case WM_CLOSE:
            if ( hStatBox )
            {
                SendMessage(hStatBox, WM_CLOSE, 0, 0L) ;
                hStatBox = NULL;
            }

            DestroyWindow(g_hwndDlg);
            KillTimeCalc();
            WinHelp(g_hwndDlg, rgpsz[IDS_HELPFILE], HELP_QUIT, 0L);
            PostQuitMessage(0);
            break;

        case WM_SYSCOMMAND:
            if ( (wParam & 0xFFF0) == SC_CLOSE )
            {
                PostQuitMessage(0);
            }
            return (DefWindowProc(hWnd, iMessage, wParam, lParam));

        case WM_DRAWITEM:
        {
            LPDRAWITEMSTRUCT pdis = (LPDRAWITEMSTRUCT)lParam;
            RECT & rect = pdis->rcItem;
            UINT & nState = pdis->itemState;
            HDC & hdc = pdis->hDC;

            int iBtnID = (int)wParam;
            LPCTSTR psz = rgpsz[INDEXFROMID(iBtnID)];

            SetTextColor( hdc, (nState & ODS_DISABLED)?GetSysColor(COLOR_GRAYTEXT):GetKeyColor( iBtnID ) );
            DrawEdge( hdc, &rect, (nState & ODS_SELECTED)?EDGE_SUNKEN:EDGE_RAISED, BF_RECT );
            DrawText( hdc, psz, -1, &rect, DT_CENTER | DT_VCENTER | DT_SINGLELINE );
            break;
        }

        case WM_CTLCOLORSTATIC:
            // get the Control's id from its handle in lParam
            if ( IDC_DISPLAY == GetWindowID( (HWND) lParam) )
            {
                // we set this window to a white backround
                hTempBrush = GetSysColorBrush( COLOR_WINDOW );
                SetBkColor( (HDC) wParam, GetSysColor( COLOR_WINDOW ) );
                SetTextColor( (HDC) wParam, GetSysColor( COLOR_WINDOWTEXT ) );

                return (LRESULT) hTempBrush;
            }
            return (DefWindowProc(hWnd, iMessage, wParam, lParam));

        case WM_SETTINGCHANGE:
            if (lParam!=0)
            {
                // we only care about changes to color and internation settings, ignore all others
                if (lstrcmp((LPCTSTR)lParam, TEXT("colors")) &&
                        lstrcmp((LPCTSTR)lParam, TEXT("intl")))
                    break;
            }

            // Always call if lParam==0.  This is simply for safety and isn't strictly needed
            InitSciCalc (FALSE);
            break;

        case WM_SIZE:
            {
                HWND hwndSizer;

                nTemp=SW_SHOW;
                if (wParam==SIZEICONIC)
                    nTemp=SW_HIDE;

                if (hStatBox!=0 && (wParam==SIZEICONIC || wParam==SIZENORMAL))
                    ShowWindow(hStatBox, nTemp);

                // A special control has been added to both dialogs with an ID of
                // IDC_SIZERCONTROL.  This control is possitioned such that the bottom of
                // the control determines the height of the dialog.  If a really large menu
                // font is selected then the menu might wrap to two lines, which exposes a
                // bug in Windows that causes the client area to be too small.  By checking
                // that IDC_SIZERCONTROL is fully visible we can compensate for this bug.
                hwndSizer = GetDlgItem( g_hwndDlg, IDC_SIZERCONTROL );
                if ( hwndSizer )
                {
                    RECT rc;
                    int iDelta;
                    GetClientRect( hwndSizer, &rc );
                    MapWindowPoints( hwndSizer, g_hwndDlg, (LPPOINT)&rc, 2 );

                    // if the difference between the current height of the client area
                    // (MAKEPOINTS(lParam).y) and the desired height of the client
                    // area (rc.bottom) is non-zero then we must adjust the size of the
                    // client area.  This will enlarge the client area if you switch
                    // from a regular menu font to a jumbo menu font and shrink the
                    // client area if you switch from a jumbo menu font to a regular
                    // menu font.
                    iDelta = rc.bottom - HIWORD(lParam);
                    if ( iDelta )
                    {
                        GetWindowRect( g_hwndDlg, &rc );
                        SetWindowPos( g_hwndDlg, NULL,
                            0, 0,                       // these are ingored due to SWP_NOMOVE
                            rc.right-rc.left,           // the width remains the same
                            rc.bottom-rc.top+iDelta,    // the heigth changes by iDelta
                            SWP_NOMOVE | SWP_NOACTIVATE | SWP_NOZORDER);
                        return 0;
                    }
                }
            }
            /* Fall through.                                              */

        default:
            return (DefWindowProc(hWnd, iMessage, wParam, lParam));
    }

    return 0L;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu国产日韩综合| 一区二区日韩av| 亚洲网友自拍偷拍| 国产中文字幕一区| 欧美色精品在线视频| 国产女人18水真多18精品一级做| 亚洲成av人片在www色猫咪| 国产一区二区影院| 日韩一区二区三免费高清| 亚洲同性gay激情无套| 国产成人自拍在线| 欧美草草影院在线视频| 亚洲 欧美综合在线网络| 99re亚洲国产精品| 欧美韩日一区二区三区四区| 久久国产欧美日韩精品| 91麻豆精品国产自产在线观看一区 | 极品美女销魂一区二区三区免费| 91福利在线看| 亚洲狼人国产精品| 色综合久久久网| 最近日韩中文字幕| 北条麻妃国产九九精品视频| 久久精品一区二区三区不卡牛牛 | 日韩三级高清在线| 亚洲成av人影院| 欧美午夜精品一区| 亚洲综合一区二区| 欧美无砖专区一中文字| 亚洲国产精品欧美一二99| 色成年激情久久综合| 一区二区三区国产豹纹内裤在线| bt7086福利一区国产| 中文字幕一区二区不卡| av资源网一区| 亚洲精品综合在线| 欧美视频日韩视频| 午夜不卡在线视频| 日韩欧美国产wwwww| 九九**精品视频免费播放| 久久久久久久网| 成人av网址在线观看| 亚洲人吸女人奶水| 91福利视频网站| 日本特黄久久久高潮| 日韩免费高清视频| 国产91精品欧美| 亚洲裸体在线观看| 欧美日韩国产一级二级| 美国十次综合导航| 欧美国产精品久久| 色八戒一区二区三区| 丝袜国产日韩另类美女| 欧美不卡激情三级在线观看| 国产精品亚洲专一区二区三区| 国产精品青草综合久久久久99| 91精品办公室少妇高潮对白| 视频一区二区中文字幕| 久久久国产精华| 一本一道久久a久久精品| 亚洲成av人在线观看| 久久久久久久久久看片| 91在线观看高清| 久久精品国产久精国产| 国产精品入口麻豆原神| 欧美精品在线观看播放| 国产精品亚洲一区二区三区在线 | 国产精品美女久久久久av爽李琼| 色综合中文综合网| 538在线一区二区精品国产| 国产综合久久久久久鬼色| ●精品国产综合乱码久久久久| 欧美三级三级三级爽爽爽| 国产精品综合av一区二区国产馆| 亚洲乱码国产乱码精品精98午夜| 日韩欧美国产系列| 日本韩国欧美一区| 丁香激情综合五月| 日韩经典中文字幕一区| 日韩毛片精品高清免费| 精品欧美一区二区三区精品久久| 色哟哟一区二区| 国产91在线看| 精品一区二区免费| 天堂成人免费av电影一区| 中文在线资源观看网站视频免费不卡 | 午夜激情久久久| 国产精品电影一区二区| 欧美mv日韩mv| 欧美日韩亚洲综合一区二区三区| 成人激情动漫在线观看| 精品一区二区在线观看| 午夜精品久久久| 夜夜嗨av一区二区三区四季av| 国产欧美一区二区三区鸳鸯浴 | 欧美丝袜丝nylons| av午夜一区麻豆| 国产精品一二一区| 久久99国产精品麻豆| 秋霞影院一区二区| 亚洲超碰97人人做人人爱| 亚洲美女免费在线| 亚洲人成在线观看一区二区| 亚洲精品在线三区| 精品免费99久久| 日韩欧美国产一二三区| 欧美一卡二卡在线观看| 7777女厕盗摄久久久| 欧美日韩日日摸| 欧美日韩一区视频| 欧美日韩五月天| 欧美三级日韩三级国产三级| 在线观看欧美黄色| 欧美色综合网站| 欧美电影在线免费观看| 欧美精品色一区二区三区| 欧美久久久久久久久久| 欧美日韩一区二区三区四区五区 | 天堂久久久久va久久久久| 亚洲成va人在线观看| 亚洲丶国产丶欧美一区二区三区| 亚洲伊人色欲综合网| 亚洲国产精品久久艾草纯爱| 夜夜嗨av一区二区三区网页| 亚洲超碰97人人做人人爱| 日韩综合在线视频| 麻豆91精品视频| 国产高清久久久久| 91在线小视频| 欧美精品电影在线播放| 欧美一区二区高清| 久久一区二区视频| 国产精品久久久久天堂| 一区二区三国产精华液| 日韩激情在线观看| 国产一区二区精品久久| hitomi一区二区三区精品| 色欲综合视频天天天| 欧美电影在哪看比较好| 久久久美女毛片| 国产精品久久二区二区| 亚洲成人激情av| 狠狠色狠狠色综合日日91app| 成人小视频免费观看| 欧美自拍丝袜亚洲| 久久午夜羞羞影院免费观看| 亚洲国产精品国自产拍av| 亚洲一二三四在线| 黄一区二区三区| 色8久久精品久久久久久蜜| 91精品婷婷国产综合久久| 国产日韩欧美精品电影三级在线 | 在线观看国产日韩| 日韩欧美电影一区| 国产精品进线69影院| 日韩福利电影在线| 99re亚洲国产精品| 精品国内二区三区| 亚洲一区在线观看免费| 国产一区二区三区| 欧洲精品在线观看| 国产精品私人自拍| 日本最新不卡在线| 91在线小视频| 久久久91精品国产一区二区精品 | 国产精品系列在线播放| 欧美日韩精品三区| 国产精品女同一区二区三区| 三级精品在线观看| www.欧美日韩| 久久无码av三级| 日本亚洲视频在线| 色久综合一二码| 中文字幕永久在线不卡| 久久激五月天综合精品| 欧美色精品在线视频| 亚洲视频免费观看| 国产成人精品在线看| 日韩三级视频在线看| 偷窥少妇高潮呻吟av久久免费| bt欧美亚洲午夜电影天堂| 久久午夜色播影院免费高清| 免费在线一区观看| 欧美日韩在线观看一区二区 | 中文字幕日韩欧美一区二区三区| 精品一区二区三区久久| 91精品国产一区二区三区香蕉| 亚洲人成电影网站色mp4| 粉嫩aⅴ一区二区三区四区五区| 精品国产一区二区三区久久久蜜月| 亚洲.国产.中文慕字在线| 91国产精品成人| 亚洲一区二区视频在线观看| 91电影在线观看| 一区二区三区在线观看国产| 日本精品免费观看高清观看| 一区二区三区视频在线看| 色诱视频网站一区| 亚洲综合色区另类av| 欧美午夜视频网站|