国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VC學習日記:對話框控件訪問的七種方式

學習了孫鑫老師的視頻,感悟很深,總結了一下對話框控件訪問的七種方式

1. 點擊靜態(tài)文本改變其內(nèi)容
當靜態(tài)文本框需要響應消息時,許將其ID號改為不同值。首先要獲取現(xiàn)在的靜態(tài)文本框控件的文本內(nèi)容:GetWindowText,其過程中,GetDlgItem:用來獲取一個

指定控件的指針,返回一個CWnd指針;(注意:靜態(tài)文本框?qū)傩岳飳otify選中,否則無法接收消息響應)
void CTestDlg::OnNumber1()
{
    CString str;
    if(GetDlgItem(IDC_NUMBER1)->GetWindowText(srt),str=="Number1:")  //整個逗號表達式前半部分的值,是后半部分的值,后半部分是個判斷語句。

如果srt=1返回真
    {
        GetDlgItem(IDC_NUMBER1)->SetWindowText("數(shù)值1:");
    }
    else
    {
        GetDlgItem(IDC_NUMBER1)->SetWindowText("Number1:");
    }
}
————————————————————————————————————————————
2. GetDlgItem()->Get(Set)WindowText()
將兩編輯框(1,2)中輸入的數(shù)字相加,在另一編輯框中顯示
首先要先獲取編輯框1和2的內(nèi)容,然后將字符內(nèi)容轉(zhuǎn)換為整型(atoi),相加后再itoa回字符串,顯示
{
    int num1,num2,num3;
    char ch1[10],ch2[10],ch3[10];

    GetDlgItemText(IDC_EDIT1,ch1,10);
    GetDlgItemText(IDC_EDIT2,ch2,10);

    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1+num2;
    itoa(num3,ch3,10); //最后一個參數(shù)10是10進制,不是num3的長度

    SetDlgItemText(IDC_EDIT3,ch3);
}
————————————————————————————————————————————
3. GetDlgItemInt()/SetDlgItemInt()(可用于有/無符號數(shù)的加減)
{
    int num1,num2,num3;
    num1=GetDlgItemInt(IDC_EDIT1);
    num2=GetDlgItemInt(IDC_EDIT2);

    num3=num1+num2;
    SetDlgItemInt(IDC_EDIT3,num3);
}
————————————————————————————————————————————
4. 將控件和整型變量相關聯(lián)
這種方法是最簡單的方法:
將三個編輯框關聯(lián)三個成員變量(Member Variables),用ClassWizard,Add Variable,n_num1,變量類型選為int(此時可設定變量范圍)
然后在OnBtnAdd()中
{
    UpdateData();  //模態(tài)對話框,要調(diào)用UpdateData
    m_num3=m_num1+m_num2;
    UpdateData(FALSE);
}
————————————————————————————————————————————
5. 將控件和控件變量相關聯(lián)
控件關聯(lián)控件,在ClassWizard中,增加成員變量,Category選擇控件(Control)
{
    int num1,num2,num3;
    char ch1[10],ch2[10],ch3[10];

    m_edit1.GetWindowText(ch1,10);  //控件調(diào)用控件
    m_edit2.GetWindowText(ch2,10);

    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1+num2;
    itoa(num3,ch3,10);

    m_edit3.SetWindowText(ch3);
}
————————————————————————————————————————————
6. SendMessage()
采用發(fā)送消息,在MFC編程中幾乎不用,在SDK編程中經(jīng)常用到
{
    int num1,num2,num3;
    char ch1[10],ch2[10],ch3[10];

    //::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);
    //::SendMessage(m_edit1.m_hWnd,WM_GETTEXT,10,(LPARAM)ch1);  //關聯(lián)了m_edit1,直接用
    //GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT,10,(LPARAM)ch1);
    m_edit1.SendMessage(WM_GETTEXT,10,(LPARAM)ch1);  //直接利用控件變量來調(diào)用SendMessage
    m_edit2.SendMessage(WM_GETTEXT,10,(LPARAM)ch2);

    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1+num2;
    itoa(num3,ch3,10);

    m_edit3.SendMessage(WM_SETTEXT,0,(LPARAM)ch3);
}
————————————————————————————————————————————
7. SendDlgItemMessage()
{
    int num1,num2,num3;
    char ch1[10],ch2[10],ch3[10];

    SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);
    SendDlgItemMessage(IDC_EDIT2,WM_GETTEXT,10,(LPARAM)ch2);

    num1=atoi(ch1);
    num2=atoi(ch2);
    num3=num1+num2;
    itoa(num3,ch3,10);

    SendDlgItemMessage(IDC_EDIT3,WM_SETTEXT,0,(LPARAM)ch3);
    SendDlgItemMessage(IDC_EDIT3,EM_SETSEL,0,-1);  //通過獲取復選的開始和結束位置
    m_edit3.SetFocus();
}
此時,計算結果會被自動復選上

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
CLRCDlg::CLRCDlg(CWnd* pParent /*=NULL*/): CDialog(CLRCDlg::IDD, pParent)
動態(tài)創(chuàng)建按鈕 復制控件 獲取/設置文本內(nèi)容 孫鑫VC學習筆記 7(1)
孫鑫VC視頻教程筆記之第七課“對話框(上)”
VC 獲取靜態(tài)文本控件和文本框控件上的文本方法
vc中edit控件使用總結
vc子類化和反子類化
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服