亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
久久99深爱久久99精品| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 日韩国产欧美一区二区三区| 欧美伦理影视网| 日韩电影在线一区| 欧美成人性战久久| 狠狠色综合日日| 日本一区二区三区免费乱视频| 国产69精品久久99不卡| 成人欧美一区二区三区白人| 成人黄色777网| 天天做天天摸天天爽国产一区| 欧美精品在线观看播放| 另类小说图片综合网| 久久久久久久综合日本| 在线亚洲人成电影网站色www| 午夜视频一区在线观看| 亚洲精品在线免费播放| 99在线精品免费| 亚洲女同一区二区| 26uuu色噜噜精品一区二区| 高清在线不卡av| 亚洲成人免费在线| 国产亚洲1区2区3区| 精品视频1区2区| 精品在线免费视频| 亚洲女厕所小便bbb| 欧美一区二区三区日韩视频| 国内精品自线一区二区三区视频| 亚洲欧美日韩久久| 日韩一级片在线观看| 国产成人免费在线观看| 一区二区三区四区在线免费观看| 欧美影片第一页| 成人综合激情网| 午夜精品一区在线观看| 国产欧美精品一区二区色综合| 欧美日韩一区久久| 国产乱人伦偷精品视频不卡| 亚洲成av人片观看| 国产精品每日更新| 日韩欧美一级二级三级| 色噜噜狠狠成人网p站| 成人丝袜18视频在线观看| 五月婷婷另类国产| 亚洲日本在线天堂| 久久精品人人做人人爽人人| 91丨porny丨最新| 国产美女精品在线| 亚洲一区av在线| 欧美激情在线观看视频免费| 欧美视频日韩视频在线观看| 国产精品一卡二| 日本怡春院一区二区| 国产精品国产三级国产三级人妇| 欧美成人精品1314www| 欧美主播一区二区三区美女| 久久国产麻豆精品| 午夜精品福利久久久| 亚洲色图在线播放| 中日韩av电影| 26uuu久久综合| 久久久三级国产网站| 宅男噜噜噜66一区二区66| 色www精品视频在线观看| www.亚洲在线| bt7086福利一区国产| 粉嫩av一区二区三区| 国产麻豆精品theporn| 日本欧美一区二区在线观看| 亚洲综合av网| 亚洲高清三级视频| 亚洲精品国产成人久久av盗摄| 国产精品青草久久| 中文字幕第一区二区| 日韩精品一区二区三区三区免费 | 91欧美激情一区二区三区成人| 国产精品亚洲成人| 国产精品一区在线观看乱码| 国产乱码精品1区2区3区| 精品无码三级在线观看视频| 老鸭窝一区二区久久精品| 免费三级欧美电影| 久久成人av少妇免费| 国产成人无遮挡在线视频| 国产成人欧美日韩在线电影| 国产成人aaa| 成人午夜又粗又硬又大| 在线观看免费一区| 欧美日韩国产高清一区二区| 欧美视频一二三区| 欧美一区二区三区影视| 欧美大片在线观看一区| 欧美日韩精品一区二区在线播放 | 国产精品欧美久久久久无广告| 国产日韩精品一区| 国产精品白丝在线| 亚洲视频网在线直播| 午夜天堂影视香蕉久久| 免费欧美日韩国产三级电影| 免费成人在线视频观看| 狠狠色丁香婷婷综合久久片| 国产在线看一区| 国产精品亚洲第一| 99久久99久久精品国产片果冻| 一本大道久久精品懂色aⅴ| 欧美性做爰猛烈叫床潮| 欧洲日韩一区二区三区| 日韩一区二区三区三四区视频在线观看| 日韩亚洲欧美一区二区三区| 精品少妇一区二区三区在线播放| 国产精品女上位| 亚洲国产乱码最新视频| 色婷婷av一区二区三区大白胸| 国产乱码精品一区二区三区忘忧草 | 波多野结衣的一区二区三区| 成a人片国产精品| 不卡在线视频中文字幕| 久久99精品国产麻豆婷婷 | 欧美在线不卡视频| 欧美一级欧美一级在线播放| 国产欧美1区2区3区| 亚洲第一精品在线| 秋霞av亚洲一区二区三| 成人毛片老司机大片| 91高清在线观看| 久久久国产综合精品女国产盗摄| 国产精品三级电影| 免费在线观看成人| 99riav久久精品riav| 久久九九国产精品| 亚洲中国最大av网站| 白白色 亚洲乱淫| 欧美一区二区三区在线视频| 亚洲视频在线一区| 国产在线精品不卡| 欧美欧美欧美欧美| 欧美日本在线看| 久久伊人中文字幕| 亚洲人成亚洲人成在线观看图片| 色欲综合视频天天天| 欧美成人a视频| 一区在线观看视频| 国产精品综合一区二区| 欧美日韩一二区| 国产精品电影一区二区三区| 日韩电影在线观看一区| 色综合咪咪久久| 日本一区二区三区四区在线视频| 麻豆国产欧美日韩综合精品二区 | 舔着乳尖日韩一区| 色哟哟欧美精品| 欧美高清一级片在线观看| 免费精品视频在线| 欧美日韩情趣电影| 国产精品色一区二区三区| 欧美吻胸吃奶大尺度电影| 日韩午夜精品电影| 亚洲v精品v日韩v欧美v专区| 日本久久电影网| 国产精品国产三级国产普通话蜜臀| 捆绑调教美女网站视频一区| 777久久久精品| 青青草原综合久久大伊人精品| 久久久久99精品一区| 日韩精品一二三四| 92精品国产成人观看免费| 久久只精品国产| 偷拍一区二区三区| 欧美日韩精品一区二区| 亚洲免费在线视频一区 二区| 风间由美一区二区av101| 日韩精品专区在线影院观看| 中文字幕一区不卡| 波多野结衣亚洲一区| 日韩视频一区二区在线观看| 一级特黄大欧美久久久| 风间由美中文字幕在线看视频国产欧美 | 91国内精品野花午夜精品 | 一区二区高清免费观看影视大全| 丁香桃色午夜亚洲一区二区三区| 欧美国产日韩在线观看| 国产精品无人区| 在线播放中文一区| 久久精品人人做| 亚洲精品成a人| 日本va欧美va欧美va精品| 九九精品视频在线看| 制服丝袜亚洲网站| 国产精品毛片久久久久久久| 国产在线不卡视频| 亚洲欧洲精品一区二区三区不卡| 国产精品99久久久久久有的能看| 欧美r级在线观看| 老司机精品视频一区二区三区| 日韩视频免费直播| 秋霞电影网一区二区| 久久精品噜噜噜成人88aⅴ| 国产精品电影一区二区三区| 亚洲特黄一级片|