3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
[VC(Visual C++) ]- 62_MFC_可帶參數的視窗程式 本篇分享62_MFC_可帶參數的視窗程式範例,有興趣的(C/P)同好,歡迎來http://yfdisk.com/file/jashliao/e935f80b/索取,因為我不會上傳檔案分享哈哈 ^ ^。 主要程式碼 001    // MFC_testDlg.cpp : implementation file                002    //                003                    004    #include "stdafx.h"                005    #include "MFC_test.h"                006    #include "MFC_testDlg.h"                007                     008    #ifdef _DEBUG                009    #define new DEBUG_NEW                010    #undef THIS_FILE                011    static char THIS_FILE[] = __FILE__;                012    #endif                013                    014    /////////////////////////////////////////////////////////////////////////////                015    // CAboutDlg dialog used for App About                016                    017    class CAboutDlg : public CDialog                018    {                 019    public:                020        CAboutDlg();            021                    022    // Dialog Data                023        //{{AFX_DATA(CAboutDlg)            024        enum { IDD = IDD_ABOUTBOX };            025        //}}AFX_DATA            026                    027        // ClassWizard generated virtual function overrides            028        //{{AFX_VIRTUAL(CAboutDlg)            029        protected:            030        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support            031        //}}AFX_VIRTUAL            032                    033    // Implementation                034    protected:                035        //{{AFX_MSG(CAboutDlg)            036        //}}AFX_MSG            037        DECLARE_MESSAGE_MAP()            038    };                039                    040    CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)                041    {                042        //{{AFX_DATA_INIT(CAboutDlg)            043        //}}AFX_DATA_INIT            044    }                045                    046    void CAboutDlg::DoDataExchange(CDataExchange* pDX)                047    {                048        CDialog::DoDataExchange(pDX);            049        //{{AFX_DATA_MAP(CAboutDlg)            050        //}}AFX_DATA_MAP            051    }                052                    053    BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)                054        //{{AFX_MSG_MAP(CAboutDlg)            055            // No message handlers        056        //}}AFX_MSG_MAP            057    END_MESSAGE_MAP()                058                    059    /////////////////////////////////////////////////////////////////////////////                060    // CMFC_testDlg dialog                 061                    062    CMFC_testDlg::CMFC_testDlg(CWnd* pParent /*=NULL*/)                063        : CDialog(CMFC_testDlg::IDD, pParent)            064    {                065        //{{AFX_DATA_INIT(CMFC_testDlg)            066            // NOTE: the ClassWizard will add member initialization here        067        //}}AFX_DATA_INIT            068        // Note that LoadIcon does not require a subsequent DestroyIcon in Win32            069        m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);            070    }                071                    072    void CMFC_testDlg::DoDataExchange(CDataExchange* pDX)                073    {                074        CDialog::DoDataExchange(pDX);            075        //{{AFX_DATA_MAP(CMFC_testDlg)            076            // NOTE: the ClassWizard will add DDX and DDV calls here        077        //}}AFX_DATA_MAP            078    }                079                    080    BEGIN_MESSAGE_MAP(CMFC_testDlg, CDialog)                081        //{{AFX_MSG_MAP(CMFC_testDlg)            082        ON_WM_SYSCOMMAND()            083        ON_WM_PAINT()            084        ON_WM_QUERYDRAGICON()            085        //}}AFX_MSG_MAP            086    END_MESSAGE_MAP()                087                    088    /////////////////////////////////////////////////////////////////////////////                089    // CMFC_testDlg message handlers                090                    091    BOOL CMFC_testDlg::OnInitDialog()                092    {                093        CDialog::OnInitDialog();            094                    095        // Add "About..." menu item to system menu.            096                    097        // IDM_ABOUTBOX must be in the system command range.            098        ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);            099        ASSERT(IDM_ABOUTBOX < 0xF000);            100                    101        CMenu* pSysMenu = GetSystemMenu(FALSE);            102        if (pSysMenu != NULL)            103        {            104            CString strAboutMenu;        105            strAboutMenu.LoadString(IDS_ABOUTBOX);        106            if (!strAboutMenu.IsEmpty())        107            {        108                pSysMenu->AppendMenu(MF_SEPARATOR);    109                pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);    110            }        111        }            112                    113        // Set the icon for this dialog.  The framework does this automatically            114        //  when the application's main window is not a dialog            115        SetIcon(m_hIcon, TRUE);            // Set big icon 116        SetIcon(m_hIcon, FALSE);        // Set small icon    117                     118        // TODO: Add extra initialization here            119                    120        return TRUE;  // return TRUE  unless you set the focus to a control            121    }                122                    123    void CMFC_testDlg::OnSysCommand(UINT nID, LPARAM lParam)                124    {                125        if ((nID & 0xFFF0) == IDM_ABOUTBOX)            126        {            127            CAboutDlg dlgAbout;        128            dlgAbout.DoModal();         129        }            130        else            131        {            132            CDialog::OnSysCommand(nID, lParam);        133        }            134    }                135                    136    // If you add a minimize button to your dialog, you will need the code below                137    //  to draw the icon.  For MFC applications using the document/view model,                138    //  this is automatically done for you by the framework.                 139                    140    void CMFC_testDlg::OnPaint()                 141    {                142        if (IsIconic())            143        {            144            CPaintDC dc(this); // device context for painting        145                    146            SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);        147                    148            // Center icon in client rectangle        149            int cxIcon = GetSystemMetrics(SM_CXICON);        150            int cyIcon = GetSystemMetrics(SM_CYICON);        151            CRect rect;        152            GetClientRect(&rect);        153            int x = (rect.Width() - cxIcon + 1) / 2;        154            int y = (rect.Height() - cyIcon + 1) / 2;        155                    156            // Draw the icon        157            dc.DrawIcon(x, y, m_hIcon);        158        }            159        else            160        {            161            CDialog::OnPaint();        162        }            163    }                164                    165    // The system calls this to obtain the cursor to display while the user drags                166    //  the minimized window.                167    HCURSOR CMFC_testDlg::OnQueryDragIcon()                168    {                169        return (HCURSOR) m_hIcon;            170    }                   

本文由jashliaoeuwordpress提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦