• <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        當(dāng)前位置:雨林木風(fēng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

        VC++應(yīng)用技巧3則

        VC++應(yīng)用技巧3則

        更新時間:2022-04-27 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

        1、創(chuàng)建向?qū)υ捒?
        在使用具體某個軟件的時候,我們常常會在該程序中使用向?qū)J絹斫⑿碌奈募,最典型的例子就是在Frontpage2000中或者Word2000中使用向?qū)Х绞絹硇陆ㄒ粋網(wǎng)頁文件或者Word文檔   
           
        。那么看到別的程序都能提供人性化的向?qū)υ捒蚝螅恢袥]有什么沖動?如果有的話,不妨使用下面的代碼來創(chuàng)建一個向?qū)υ捒颍?

        void CMy56_s1Dlg::OnWiz()
        {
            CSheet sheet;
            sheet.SetWizardMode();
            int iRet=sheet.DoModal();//返回ID_WIZFINISH或IDCANCEL
        }
        //重載BOOL CPropertyPage::OnSetActive( )來控制顯示的按鈕

        BOOL CPage1::OnSetActive()
        {
            ((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_BACK|PSWIZB_NEXT);
            return CPropertyPage::OnSetActive();
        }

        BOOL CPage2::OnSetActive()
        {
            ((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_BACK|PSWIZB_FINISH);
            return CPropertyPage::OnSetActive();
        }


        2、在計算機(jī)之間實(shí)現(xiàn)收發(fā)數(shù)據(jù)
        大家知道,計算機(jī)之間相互通信時,一般都是通過TCP協(xié)議來與指定IP地址的主機(jī)來建立聯(lián)系,并進(jìn)行相互通信的,在這個過程中,必需有一方扮演服務(wù)器的角色等待另一方(客戶端)的連接請求,所以服務(wù)器端需要建立一個監(jiān)聽套接口,然后在此套接口上等待連接。當(dāng)連接建立后會產(chǎn)生一個新的套接口用于通信。而客戶端在創(chuàng)建套接口后只需要簡單的調(diào)用連接函數(shù)就可以創(chuàng)建連接。對于有連接的通信不論是數(shù)據(jù)的發(fā)送還是發(fā)送與接收的順序都是有保證的。下面的代碼就是利用VC++提供的CSocket來實(shí)現(xiàn)數(shù)據(jù)收發(fā)功能的:

        /*
        服務(wù)器方在端口6802上等待連接,當(dāng)連接建立后關(guān)閉監(jiān)聽套接口
        客戶方向服務(wù)器端口6802發(fā)起連接請求
        */

        BOOL CMy63_s1_serverDlg::OnInitDialog()
        {
            CDialog::OnInitDialog();

            CSocket sockListen;
            //創(chuàng)建本地套接口
            sockListen.Create(6802,SOCK_STREAM,"127.0.0.1");
            //綁定參數(shù)
            sockListen.Bind(6802,"127.0.0.1");
            sockListen.Listen(5);
            //等待連接請求,m_sockSend為成員變量,用于通信
            sockListen.Accept(m_sockSend);
            //關(guān)閉監(jiān)聽套接口
            sockListen.Close();
            //啟動定時器,定時發(fā)送數(shù)據(jù)
             
            SetTimer(1,3000,NULL);
        }


        void CMy63_s1_serverDlg::OnTimer(UINT nIDEvent)
        {
            static iIndex=0;
            char szSend[20];
            sprintf(szSend,"%010d",iIndex++);
            //發(fā)送TCP數(shù)據(jù)
            int iSend= m_sockSend.Send(szSend,10,0);
        }

        BOOL CMy63_s1_clientDlg::OnInitDialog()
        {
            CDialog::OnInitDialog();
            //創(chuàng)建本地套接口
            m_sockRecv.Create();
            //發(fā)起連接請求
            BOOL fC=m_sockRecv.Connect("127.0.0.1",6802);
            TRACE("connect is %s\n",(fC)?"OK":"Error");
            //啟動定時器,定時接收數(shù)據(jù)
            SetTimer(1,3000,NULL);
        }

        void CMy63_s1_clientDlg::OnTimer(UINT nIDEvent)
        {
            char szRecv[20];
            //接收TCP數(shù)據(jù)
            int iRecv =m_sockRecv.Receive(szRecv,10,0);
            TRACE("received %d byte\n",iRecv);
            if(iRecv>=0)
            {
                szRecv[iRecv]='\0';
                m_szRecv=szRecv;
                UpdateData(FALSE);
            }
        }


        3、讓工具欄并列顯示
        假設(shè)在Windows程序窗口中有幾個工具欄,現(xiàn)在我們希望讓這些多個工具欄并列顯示,該怎么實(shí)現(xiàn)呢?在這里,我們可以使用下面的函數(shù)來實(shí)現(xiàn)該功能,此函數(shù)是從CJ60Lib函數(shù)庫弄下來的。筆者在下面的程序中實(shí)現(xiàn)的功能是,讓LeftOf工具欄顯示在Bar工具欄的左側(cè),同時還要并列顯示在一起,下面就是實(shí)現(xiàn)其功能的主要代碼:

        void CCJMDIFrameWnd::DockControlBarLeftOf(CControlBar* Bar,
        CControlBar* LeftOf)
        {
            CRect rect;
            DWORD dw;
            UINT n;
            // 使用MFC來調(diào)整所有工具欄的尺寸
            // 確保GetWindowRec準(zhǔn)確
            RecalcLayout(TRUE);

            LeftOf->GetWindowRect(&rect);
            rect.OffsetRect(1,0);
            dw=LeftOf->GetBarStyle();
            n = 0;
            n = (dw&CBRS_ALIGN_TOP) ? AFX_IDW_DOCKBAR_TOP: n;
            n = (dw&CBRS_ALIGN_BOTTOM&& n==0) ? AFX_IDW_DOCKBAR_BOTTOM:n;
            n = (dw&CBRS_ALIGN_LEFT && n==0) ? AFX_IDW_DOCKBAR_LEFT:n;
            n = (dw&CBRS_ALIGN_RIGHT&& n==0) ? AFX_IDW_DOCKBAR_RIGHT:n;
            DockControlBar(Bar,n,&rect);
        }

        溫馨提示:喜歡本站的話,請收藏一下本站!

        本類教程下載

        系統(tǒng)下載排行

        主站蜘蛛池模板: 亚洲精品高清一二区久久| 成年在线网站免费观看无广告| 国产亚洲福利一区二区免费看| 亚洲中文字幕无码久久2020| 日本三级2019在线观看免费| 亚洲国产精品久久久久秋霞影院| 亚洲黄色免费电影| 1区1区3区4区产品亚洲| 最近中文字幕高清免费中文字幕mv | 久久一本岛在免费线观看2020| 亚洲第一AAAAA片| 四虎国产精品永久免费网址| 亚洲欧洲第一a在线观看| 日本一道一区二区免费看| 亚洲AV永久无码精品网站在线观看| 免费看美女被靠到爽| 亚洲精品国产av成拍色拍| 国产不卡免费视频| 深夜免费在线视频| 亚洲av永久无码精品表情包| 最近中文字幕mv免费高清在线 | 成人免费午间影院在线观看| 亚洲日韩国产一区二区三区在线| 四虎国产精品免费久久影院| 乱淫片免费影院观看| 亚洲国产成人高清在线观看| 国产大片91精品免费观看不卡| 亚洲色大成网站www| 亚洲熟伦熟女新五十路熟妇| 日本免费一区二区三区| 中文字幕亚洲综合久久综合| 亚洲第一区精品观看| 亚洲成无码人在线观看| 午夜免费福利影院| 国产精品免费大片一区二区| 国产gav成人免费播放视频| 一级特黄录像免费播放肥| 亚洲无成人网77777| 四虎永久精品免费观看| 国产99视频精品免费专区| 亚洲AV无码久久寂寞少妇|