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

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

?? mdichild.c

?? ICon文件格式
?? C
?? 第 1 頁 / 共 4 頁
字號:
/****************************************************************************\
*            
*     FILE:     MDIChild.C
*
*     PURPOSE:  IconPro Project MDI Child Window handling c file
*
*     COMMENTS: This file contains the MDI Child Window handling code
*
*     FUNCTIONS:
*      EXPORTS: 
*               IconChildWndProc   - Window Procedure for the MDI children
*      LOCALS:
*               Draw3DRect         - Draws a rectangle using 3D colors
*               EraseBackground    - Draws the MDI child's background
*               CreateChildren     - Creates MDI child's child windows
*               CreateChildListBox - Creates and shows a list box
*               AddFormatDlgProc   - Dialog Proc for AddFormat dialog
*
*     Copyright 1995 Microsoft Corp.
*
*
* History:
*                July '95 - Created
*
\****************************************************************************/
#include <windows.h>
#include <commctrl.h>
#include "Icons.h"
#include "IconPro.h"
#include "Resource.h"
#include "MDIChild.H"


/****************************************************************************/
// External Globals
extern HINSTANCE    hInst;
extern HWND        	hWndMain, hMDIClientWnd;
/****************************************************************************/


/****************************************************************************/
// Prototypes for local functions
BOOL Draw3DRect( HDC hDC, RECT Rect, BOOL bSunken );
void EraseBackground( HWND hWnd, HDC hDC );
BOOL CreateChildren( HWND hWnd );
HWND CreateChildListBox( HWND hWndParent, UINT ID, LPRECT lpRect );
BOOL CALLBACK AddFormatDlgProc( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );
/****************************************************************************/



/****************************************************************************
*
*     FUNCTION: IconChildWndProc
*
*     PURPOSE:  Window Procedure for MDI child window
*
*     PARAMS:   HWND hWnd     - This window handle
*               UINT Msg      - Which Message?
*               WPARAM wParam - message parameter
*               LPARAM lParam - message parameter
*
*     RETURNS:  LRESULT - depends on message
*
* History:
*                July '95 - Created
*
\****************************************************************************/
LRESULT CALLBACK IconChildWndProc( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam )
{
    // Which message is it?
    switch( Msg )
    {
        // User pressed left mouse button
        // Should be re-generate the AND mask?
        case WM_LBUTTONDOWN:
        {
            LPCHILDWINDOWDATA	lpcwd;

            // Get the icon resource data aassociated with this window
            if( (lpcwd = (LPCHILDWINDOWDATA)GetWindowLong( hWnd, GWL_USERDATA )) == NULL )
                break;

            // Do something only if the CNTRL key is pressed too
            if( MK_CONTROL & wParam )
            {
                POINTS	pts = MAKEPOINTS(lParam);
                POINT	pt;
                RECT    ImageRect;
                DWORD	nIndex;

                pt.x = pts.x; pt.y = pts.y;
                // Do we have some icon resource data?
                if( lpcwd->lpIR != NULL )
                {
                    // Which image is selected right now?
                    if( (nIndex = SendMessage( lpcwd->hWndFormatListBox, CB_GETCURSEL, 0, 0 )) != CB_ERR )
                    {
                        // Where is it drawn
                        ImageRect = GetXORImageRect( lpcwd->XORRect, &(lpcwd->lpIR->IconImages[nIndex]) );
                        // Is the mouse click in the image?
                        if( PtInRect( &ImageRect, pt ) )
                        {
                            HCURSOR	hOldCursor;

                            // This might take a while :(
                            hOldCursor = SetCursor( LoadCursor(NULL,IDC_WAIT) );
                            pt.x -= ImageRect.left;
                            pt.y -= ImageRect.top;
                            // generate the new AND mask
                            MakeNewANDMaskBasedOnPoint( &(lpcwd->lpIR->IconImages[nIndex]), pt );
                            // force a redraw
                            InvalidateRect( hWnd, NULL, TRUE );
                            //  Set changed flag
                            lpcwd->lpIR->bHasChanged = TRUE;
                            // finally, its over, put the cursor back
                            SetCursor( hOldCursor );
                        }
                    }
                }
            }
        }
        break; // End WM_LBUTTONDOWN

        // Time to say "Goodbye"
        case WM_CLOSE:
        {
            LPCHILDWINDOWDATA	lpcwd;
            TCHAR	szWindowTitle[MAX_PATH];

            // Get the data associated with this window
            lpcwd = (LPCHILDWINDOWDATA)GetWindowLong( hWnd, GWL_USERDATA );
            // Is there data associated with this window?
            if( lpcwd != NULL )
            {
                // Does the data include an icon resource
                if( lpcwd->lpIR != NULL )
                {
                    // Has the resource changed?
                    if( lpcwd->lpIR->bHasChanged )
                    {
                        // Get the title for the message box
                        GetWindowText( hWnd, szWindowTitle, MAX_PATH );
                        if( lstrlen( szWindowTitle ) < 1 )
                            lstrcpy( szWindowTitle, "UnKnown" );
                        // User want to save changes?
                        switch( MessageBox( hWnd, "Icon has Changed, Save Changes?", szWindowTitle, MB_ICONSTOP | MB_YESNOCANCEL ) )
                        {
                            case IDYES:
                                SendMessage( hWnd, WM_COMMAND, ID_FILE_SAVE, 0 );
                                // Fall through to IDNO and kill window
                            case IDNO:
                                DefMDIChildProc( hWnd, Msg, wParam, lParam );
                                return 0;
                            break;
                            case IDCANCEL:
                                return 1;
                            break;
                        }
                    }
                }
            }
            DefMDIChildProc( hWnd, Msg, wParam, lParam );
            return 0;
        }
        break; // End WM_CLOSE

        // We are being created
        case WM_CREATE:
        {
            LPCHILDWINDOWDATA	lpcwd;

            // Need new data for this new window
            lpcwd = malloc( sizeof( CHILDWINDOWDATA ) );
            SetWindowLong( hWnd, GWL_USERDATA, (LONG)lpcwd );
            lpcwd->lpIR = NULL;
            // If a resource was passed in, use it
            if( (LPVOID)lParam != NULL )
                lpcwd->lpIR = (LPICONRESOURCE)(((MDICREATESTRUCT *)(((CREATESTRUCT *)lParam)->lpCreateParams))->lParam);
            // If no resource was passed in, do minimal initialization
            if( lpcwd->lpIR == NULL )
            {
                lpcwd->lpIR = malloc(sizeof(ICONRESOURCE));
                lstrcpy( lpcwd->lpIR->szOriginalICOFileName, "Untitled" );
                lstrcpy( lpcwd->lpIR->szOriginalDLLFileName, "" );
                lpcwd->lpIR->nNumImages = 0;
            }
            // Nothing has changed
            lpcwd->lpIR->bHasChanged = FALSE;
            // Create the list box, etc
            CreateChildren( hWnd );
            return DefMDIChildProc( hWnd, Msg, wParam, lParam );
        }
        break; // End WM_CREATE

        // Won't let window get too small to show our main area
        case WM_GETMINMAXINFO:
        {
            LPMINMAXINFO    lpmmi = (LPMINMAXINFO)lParam;

            lpmmi->ptMinTrackSize.x = WINDOW_WIDTH;
            lpmmi->ptMinTrackSize.y = WINDOW_HEIGHT;
            return 0;
        }
        break; // End WM_GETMINMAXINFO

        // Yikes! We're being destroyed!
        case WM_DESTROY:
        {
            LPCHILDWINDOWDATA	lpcwd;

            // Get the data associated with this window 
            lpcwd = (LPCHILDWINDOWDATA)GetWindowLong( hWnd, GWL_USERDATA );
            // Is there some?
            if( lpcwd != NULL )
            {
                // Is there a resource?
                if( lpcwd->lpIR != NULL )
                {
                    UINT i;

                    // Free all the bits
                    for( i=0; i< lpcwd->lpIR->nNumImages; i++ )
                    {
                        if( lpcwd->lpIR->IconImages[i].lpBits != NULL )
                            free( lpcwd->lpIR->IconImages[i].lpBits );
                    }
                    free( lpcwd->lpIR );
                }
                free( lpcwd );
            }
            SetWindowLong( hWnd, GWL_USERDATA, 0 );
        }
        break; // End WM_DESTROY

        // Draw our background (white and black squares, etc)
        case WM_ERASEBKGND:
            EraseBackground( hWnd, (HDC)wParam );
            return 1;
        break; // End WM_ERASEBKGND

        // Ok, time to paint
        case WM_PAINT:
        {
            LPCHILDWINDOWDATA	lpcwd;
            HDC                	hDC;
            PAINTSTRUCT        	ps;
            DWORD            	nIndex;
            HICON            	hIcon = NULL;

            // Obligatory BeginPaint()
            hDC = BeginPaint( hWnd, &ps );
            // Get the data associated with this window
            lpcwd = (LPCHILDWINDOWDATA)GetWindowLong( hWnd, GWL_USERDATA );
            // Is there some?
            if( lpcwd != NULL )
            {
                // Is there a resource?
                if( lpcwd->lpIR != NULL )
                {
                    // Which image is selected?
                    if( (nIndex = SendMessage( lpcwd->hWndFormatListBox, CB_GETCURSEL, 0, 0 )) != CB_ERR )
                    {
                        int        	Width, Height;

                        // Get an HICON for the currently selected image
                        hIcon = MakeIconFromResource( &(lpcwd->lpIR->IconImages[nIndex]) );
                        // How big is the icon?
                        Width = lpcwd->lpIR->IconImages[nIndex].Width;
                        Height = lpcwd->lpIR->IconImages[nIndex].Height;
                        // Check to see if the icon is NULL
                        // If it is, consider it "unsupported"
                        // In the future, maybe we should look into MakeIconFromResource() and
                        // see why it is null - it may be for another reason than "unsupported"
                        if( hIcon == NULL )
                        {
                            SIZE    Size, Position;

                            // Draw some text in the black rect
                            SetTextColor( hDC, RGB(255,255,255) );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人福利片| 国产精品情趣视频| 99re亚洲国产精品| 午夜激情久久久| 国产精品黄色在线观看| 欧美一级二级三级乱码| 色综合久久久久综合体桃花网| 美女一区二区视频| 亚洲高清不卡在线观看| 国产精品家庭影院| 久久久国产精品麻豆| 日韩久久免费av| 69堂成人精品免费视频| 欧美日韩一区二区欧美激情| 不卡视频在线观看| 懂色av中文字幕一区二区三区| 日本成人中文字幕| 美腿丝袜一区二区三区| 亚洲成精国产精品女| 亚洲一区二区3| 一区二区三区日本| 亚洲自拍另类综合| 一区二区三区精品在线观看| 亚洲色图在线播放| 一区二区在线观看视频| 亚洲裸体xxx| 午夜精品在线看| 美洲天堂一区二卡三卡四卡视频| 蜜臀久久久久久久| 国精产品一区一区三区mba桃花| 国产一区二区三区四区五区入口 | 一区二区视频在线| 亚洲va天堂va国产va久| 久久99精品久久久久久国产越南 | 在线亚洲一区二区| 91精品国产综合久久福利软件| 欧美一区二区三区精品| 久久综合成人精品亚洲另类欧美| 国产欧美精品一区二区色综合| 国产午夜精品一区二区三区嫩草| 欧美国产综合色视频| 亚洲男人天堂一区| 久久精品国产亚洲高清剧情介绍| 成人综合婷婷国产精品久久免费| 色婷婷久久久久swag精品 | 26uuuu精品一区二区| 一区在线观看视频| 美女一区二区三区| 99精品视频一区| 久久先锋资源网| 亚洲一二三区视频在线观看| 麻豆视频一区二区| 91麻豆国产自产在线观看| 日韩欧美一卡二卡| 亚洲一区二区三区在线看| 国产一区二区不卡老阿姨| 欧美亚洲国产怡红院影院| 国产午夜精品一区二区| 免费不卡在线视频| 宅男噜噜噜66一区二区66| 自拍偷拍亚洲综合| bt欧美亚洲午夜电影天堂| 精品99久久久久久| 蜜臀av性久久久久蜜臀aⅴ| 欧美中文字幕一区| 亚洲男同性视频| 色激情天天射综合网| 中文字幕一区二区三区在线播放| 久久99精品国产麻豆不卡| 欧美日韩免费高清一区色橹橹| 亚洲精品第一国产综合野| 91啪亚洲精品| 亚洲乱码国产乱码精品精可以看| 丁香激情综合国产| 亚洲欧洲精品一区二区三区| 成人性视频免费网站| 亚洲国产精品成人综合色在线婷婷| 国产精品亚洲一区二区三区在线| 欧美v日韩v国产v| 国产成人av福利| 国产亚洲精品7777| 色噜噜狠狠成人网p站| 一区二区成人在线| 在线不卡欧美精品一区二区三区| 午夜成人在线视频| 久久亚洲一区二区三区四区| 风间由美中文字幕在线看视频国产欧美 | 欧美综合视频在线观看| 亚洲欧美乱综合| 欧美一级高清大全免费观看| 成人一级视频在线观看| 婷婷一区二区三区| 国产午夜久久久久| 91麻豆精品国产91久久久使用方法| 免费高清视频精品| 中文字幕在线观看不卡视频| 欧美酷刑日本凌虐凌虐| 岛国精品在线播放| 蜜桃91丨九色丨蝌蚪91桃色| 综合久久给合久久狠狠狠97色| 欧美一区二区在线不卡| 色狠狠色噜噜噜综合网| 韩国一区二区三区| 青青草国产成人99久久| 亚洲高清免费观看 | 成人欧美一区二区三区在线播放| 91精品国产综合久久久久| 91在线观看视频| 国产91丝袜在线播放九色| 奇米影视在线99精品| 亚洲成人一二三| 亚洲美女免费视频| 亚洲精品久久7777| 国产精品美女久久久久久| 国产女人aaa级久久久级| 欧美大胆人体bbbb| 欧美电视剧免费全集观看| 欧美一区二视频| 欧美sm美女调教| 欧美电视剧在线看免费| 日韩限制级电影在线观看| 欧美人狂配大交3d怪物一区| 欧美日韩一区二区三区四区五区| 色欧美日韩亚洲| 欧美日本一区二区在线观看| 欧美日韩一卡二卡三卡| 欧美日韩高清不卡| 91麻豆精品国产91久久久资源速度 | 国产精品久久久久婷婷二区次| 久久免费看少妇高潮| 国产精品国产a| 午夜精品成人在线视频| 精品一区二区三区久久| 成人18精品视频| 欧美在线一区二区| 精品美女被调教视频大全网站| 国产精品欧美一区喷水| 亚洲激情一二三区| 另类小说色综合网站| 成人av影院在线| 欧美精品三级在线观看| 久久久久久久电影| 亚洲一区二区三区不卡国产欧美| 日韩制服丝袜av| 9色porny自拍视频一区二区| 91高清在线观看| 中文字幕免费一区| 日韩国产在线一| 99久久婷婷国产综合精品电影| 在线观看91精品国产麻豆| 国产精品传媒在线| 国产最新精品精品你懂的| 日本伦理一区二区| 国产精品免费视频网站| 麻豆国产精品视频| 色婷婷久久综合| 中文字幕一区日韩精品欧美| 日本vs亚洲vs韩国一区三区| 91伊人久久大香线蕉| 亚洲国产激情av| 国内精品在线播放| 欧美一区二区三区成人| 亚洲高清不卡在线观看| 在线观看亚洲精品| 成人免费在线视频| 不卡的av网站| 国产精品国产三级国产aⅴ中文| 久久精品二区亚洲w码| 欧美巨大另类极品videosbest| 亚洲尤物视频在线| 在线观看日韩毛片| 亚洲精品视频在线观看免费| 成人高清在线视频| 日韩码欧中文字| 一本色道久久综合狠狠躁的推荐| 日韩美女视频一区二区 | 日韩午夜在线影院| 国产在线一区二区综合免费视频| 日韩欧美中文一区| 国产一区不卡视频| 国产欧美视频一区二区三区| 豆国产96在线|亚洲| 国产精品麻豆99久久久久久| 91麻豆.com| 日韩国产一区二| 国产视频亚洲色图| 色天天综合色天天久久| 日本中文在线一区| 欧美激情综合五月色丁香小说| 成人av网址在线观看| 亚洲午夜免费视频| 精品国产一区二区三区四区四| 国产成人在线免费观看| 亚洲乱码日产精品bd| 欧美一区二区精美| 99久久777色| 久久国产福利国产秒拍| 亚洲人成7777| 久久日韩精品一区二区五区| 91免费精品国自产拍在线不卡|