日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

VC++應用技巧3則

VC++應用技巧3則

更新時間:2022-04-27 文章作者:未知 信息來源:網絡 閱讀次數:

1、創建向導對話框
在使用具體某個軟件的時候,我們常常會在該程序中使用向導模式來建立新的文件,最典型的例子就是在Frontpage2000中或者Word2000中使用向導方式來新建一個網頁文件或者Word文檔   
   
。那么看到別的程序都能提供人性化的向導對話框后,不知您有沒有什么沖動?如果有的話,不妨使用下面的代碼來創建一個向導對話框:

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、在計算機之間實現收發數據
大家知道,計算機之間相互通信時,一般都是通過TCP協議來與指定IP地址的主機來建立聯系,并進行相互通信的,在這個過程中,必需有一方扮演服務器的角色等待另一方(客戶端)的連接請求,所以服務器端需要建立一個監聽套接口,然后在此套接口上等待連接。當連接建立后會產生一個新的套接口用于通信。而客戶端在創建套接口后只需要簡單的調用連接函數就可以創建連接。對于有連接的通信不論是數據的發送還是發送與接收的順序都是有保證的。下面的代碼就是利用VC++提供的CSocket來實現數據收發功能的:

/*
服務器方在端口6802上等待連接,當連接建立后關閉監聽套接口
客戶方向服務器端口6802發起連接請求
*/

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

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


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

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

void CMy63_s1_clientDlg::OnTimer(UINT nIDEvent)
{
    char szRecv[20];
    //接收TCP數據
    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、讓工具欄并列顯示
假設在Windows程序窗口中有幾個工具欄,現在我們希望讓這些多個工具欄并列顯示,該怎么實現呢?在這里,我們可以使用下面的函數來實現該功能,此函數是從CJ60Lib函數庫弄下來的。筆者在下面的程序中實現的功能是,讓LeftOf工具欄顯示在Bar工具欄的左側,同時還要并列顯示在一起,下面就是實現其功能的主要代碼:

void CCJMDIFrameWnd::DockControlBarLeftOf(CControlBar* Bar,
CControlBar* LeftOf)
{
    CRect rect;
    DWORD dw;
    UINT n;
    // 使用MFC來調整所有工具欄的尺寸
    // 確保GetWindowRec準確
    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);
}

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

本類教程下載

系統下載排行

主站蜘蛛池模板: 日韩免费一级a毛片在线播放一级 | 久久精品国产久精国产 | 操女网站 | 日韩欧美国产精品第一页不卡 | 国产三级在线观看视频 | 爱爱小视频免费看 | 无码免费一区二区三区免费播放 | 在线视频中文 | 国产亚洲sss在线观看 | 欧美激情一区二区三区高清视频 | 91先生在线| 国产精品久久久久久久久久妇女 | 91精品国产自产在线观看高清 | 一区二区三区福利视频 | 99国产精品欧美久久久久久影院 | 爱爱视频免费网站 | 久久综合九色综合网站 | 久久国产成人福利播放 | 最近最新高清中文字幕6页 最近最新手机中文字幕在线看 | 欧美人与动人物a级网站 | 爆操妹子| 国产精品亚洲综合色区韩国 | 99热久久| 国产福利视频一区二区三区四区 | 四虎影院免费在线播放 | 欧美性与交视频在线观看 | 2019久热精品视频在线看 | 欧美日韩中文国产一区 | 日本高清视频色视频kk266 | 牛站一级欧美大片 | 午夜在线成人 | 国产在热线精品视频国产一二 | 伊人伊成久久人综合网777 | 日本在线免费 | 国产不卡在线 | 日韩欧美国产高清在线观看 | 免费观看激色视频网站bd | 久久亚洲不卡一区二区 | 手机免费看黄在线高清视频 | 亚洲精品成人网久久久久久 | 欧美一区二区精品系列在线观看 |