• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • 2.1 靜態文本、文本框和按鈕使用實例

    標簽: VC++-6-0  靜態文本  文本框  按鈕

    靜態文本、文本框和按鈕是軟件界面中最常見的控件,靜態文本主要用來在界面上顯示一些提示性的文字,在程序運行過程中一般不需要修改其內容,它也很少接受用戶輸入。文本框用來接受用戶輸入的文本內容。按鈕控件用來接受用戶的指令。

    2.1.1 技術要點:

    • 靜態文本的內容在設計期就可確定,但如果要在運行時動態修改其內容,就必須把IDE生成的默認控件ID改成有意義的唯一ID。Group Box 和 Picture 控件也可看作靜態文本,只是繪制方式不同。Windows 中預先定義了一系列以“STM_ ”開頭的專用消息,用于控制靜態文本控件。例如向控件發送 STM_ GETICON 消息,可以獲取一個具有SS_ ICON 風格的控件中當前顯示的圖標句柄;
    • 靜態文本控件有一些特殊的窗口風格,這些風格均以“SS_ ”開頭,不同的風格會使控件呈現出不同外觀。例如當控件具有SS_ NOTIFY 風格時,控件將能接受鼠標輸入;
    • 靜態文本控件中有事件發生時,將向其父窗口通過 WM_ COMMAND 消息發出預先定義的以“STN_ ”開頭的通知消息。例如 STN_ CLICKED 代表用戶單擊了控件;
    • MFC對靜態文本的封裝為 CStatic 類;
    • 和靜態文本控件類似,文本框控件也有一系列專用控制消息,這些消息類似于 EM_ XXX 。文本框控件的專用窗口風格類似于 ES_ XXX 。文本框的事件通知消息類似于 EN_ XXX 。MFC 對文本框的封裝為 CEdit 類;
    • 用于控制按鈕的消息定義均以“BM_ ”開頭,按鈕風格定義均以“BS_ ”開頭,按鈕的事件通知消息均以“BN_ ”開頭。MFC 對按鈕控件的封裝為 CButton 類;
    • 在對話框中,這3種控件都可以用 API 函數 SetDlgItemText來設置其顯示文本,都可以通過 API 函數 GetDlgItemText 來獲取其文本;

    ···

    2.1.2 實例步驟:
    本實例通過一個統計文本框中字符串長度和字符個數的程序,演示上述3種控件的基本用法。實例步驟如下:

    1. 在 Visual C++ 6.0 中新建一個基于對話框的 MFC 應用程序,項目名稱為“EditDemo”;這里寫圖片描述這里寫圖片描述
    2. 通過資源編輯器打開主對話框,刪除主對話框上 IDE 自動生成的控件;這里寫圖片描述這里寫圖片描述
    3. 通過工具箱,向主對話框上添加一個靜態文本控件,在控件上單擊鼠標右鍵打開“Properties”菜單。在彈出的屬性編輯界面中,選擇“General”選項卡,將控件的“Caption”屬性修改為“在文本框中輸入文本,可統計字符數:”;這里寫圖片描述
    4. 向主對話框中添加一個文本框控件。在控件上單擊鼠標右鍵打開“Properties”菜單,打開控件的屬性編輯界面。在“General”屬性頁中,將控件的ID屬性修改為“IDC_ EDT_ INPUT”,在“Styles”屬性頁中,選中控件的“Multiline”、“Horizontal scroll”和“Vertical scroll”風格。這三種風格將使控件支持多行文本輸入,并具有水平和垂直滾動條;這里寫圖片描述這里寫圖片描述
    5. 向主對話框上添加一個按鈕控件,將其ID屬性修改為“IDC_ BTN_ COUNT”,“Caption”屬性修改為“統計”;這里寫圖片描述
    6. 向主對話框中添加一個靜態文本空間,將控件的ID屬性修改為“IDC_ OUTPUT”,“Caption”屬性清空;這里寫圖片描述
    7. 在主對話框上單擊鼠標右鍵,在彈出的菜單中選擇“ClassWizard”,打開 Visual C++ 6.0 的類向導。在“Object IDs”列表框中選擇按鈕控件“IDC_ BTN_ COUNT”,在“Messages”列表框中選擇“BN_ CLICKED”消息,單擊“Add Function”按鈕,在彈出的對話框中單擊“OK”按鈕后,即可在主對話框類中添加該按鈕的單擊事件響應函數。添加函數后的類向導界面如下;這里寫圖片描述這里寫圖片描述
    8. 單擊類向導界面上的“Edit Code”按鈕,進入代碼編輯器。將新添加的函數內容修改為如下所示;
    //“統計”按鈕的單擊事件響應函數
    void CEditDemoDlg::OnBtnCount() 
    {
        CString strInput;
        //取得輸入文本框中的內容
        GetDlgItemText(IDC_EDT_INPUT, strInput);
        //獲取字符串長度
        int nLen = strInput.GetLength();
        int nCount = 0;
        //循環計算字符個數
        for(int i=0; i<nLen; i++)
        {
            if((BYTE)strInput[i] > 0x7F)
            {
                i++;
            }
            nCount ++;
        }
        //輸出結果到界面上
        CString strOutput;
        strOutput.Format(_T("字符串長度:%d,字符個數:%d。"), nLen, nCount);
        SetDlgItemText(IDC_OUTPUT, strOutput);
    }

    2.1.3 程序運行:

    代碼輸入完畢后,按F5鍵,即可運行程序。在程序界面上的文本框中輸入一些文本,單擊“統計”按鈕,所輸入的字符串的長度和其中的字符個數會顯示出來;這里寫圖片描述

    2.1.4 源程序解讀:

    • 由于控件本身也是窗體,支持窗體的所有消息和特性,再加上控件新增的消息和特性,使得控件的完全使用方法不能用較短篇幅描述清楚。本章所演示的只是控件的最基本使用方法;
    • 本實例中界面上共有兩個靜態文本控件,其中一個使用了默認的“ID_ STATIC”,使用默認ID的靜態文本控件,一般用于顯示固定不變的文本信息,如果要在程序中修改控件的文本,需要為控件指定一個專用的ID;
    • 本例中,對控件屬性的修改步驟做了詳細描述,在后續章節中,不再敖述;
    版權聲明:本文為Christmas_Tree原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/Christmas_Tree/article/details/73550954

    智能推薦

    JS 點擊按鈕增加文本框

    一、增加到指定表格ID  <table class='display dataTable' id="tab" cellpadding="0" cellspacing="0" > 二、動態指定 JS代碼 全選代碼: html代碼: <a href='javascript:;' onclick="addT...

    flutter 文本框使用

     示例代碼 用到了吐司插件 在pubspec.yaml 導入...

    PowerBuilder 透明靜態文本框(statictext)

    效果圖: 1、建立一個可視用戶對象 uo_transparent,類型為statictext,創建實例變量 boolean ib_painting...

    13 MFC - 靜態文本框CStatic

    靜態文本框是最簡單的控件,它主要用來顯示文本信息,不能接受用戶輸入,一般不需要連接變量,也不需要處理消息。 靜態文本框的重要屬性有: ID:所有靜態文本框的缺省ID都是IDC_STATIC,靜態ID,不響應任何消息(事件) Caption:修改顯示的內容 常用接口: 接口 功能 CWnd::SetWindowText 設置控件內容 CWnd::GetWindowText 獲取控件內容 CStati...

    Android數據庫GreenDao2.1使用和缺陷

    1.依賴: 2.創建自定義的DAOGenerater,指定數據庫相關配置并生成相關類 3. 在Application中通過DaoMaster.DevOpenHelper初始化數據庫 4.在配置清單文件中配置一下自定義的Application 5.在BaseActivity BaseFragment類中獲取全局的Dao 6.增,刪,改,查 7.數據庫的更新: http://www.open-open...

    猜你喜歡

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    精品国产乱码久久久久久蜜桃不卡