最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

windows開發(fā)記事本程序紀實(一)界面篇

 更新時間:2014年08月31日 10:05:39   投稿:hebedich  
這將是一個系列博文,后面會繼續(xù)補充邏輯功能的開發(fā)的步驟。本節(jié)主要實現(xiàn)記事本的主界面設計,包括主界面窗口的構(gòu)建、菜單的加入。雖然都是一些基本的操作,但是還是想將這些基本步驟完整地記錄下來,以便后續(xù)驗證。

前言

從畢業(yè)開始學習windows UI編程,工作中總是和一些API打交道,但是從沒有做過一個完整的界面程序。因此打算自己利用空余時間做一個小的項目來總結(jié)自己所學的東西。在網(wǎng)上看到許多人建議自己動手寫完整的項目才能快速提高,因此打算從仿照windows的記事本開始,真正實現(xiàn)一個基本的windows界面程序??紤]到編寫一個完整的windows 記事本程序需要大量的工作,因此打算將每一個階段的成果記錄下來,一方面能夠幫助自己進行總結(jié),回顧已學的知識,另一方面也能夠與其他網(wǎng)友一起討論,從而可以在討論中共同進步。

本節(jié)介紹

如本文題目所示,本節(jié)主要實現(xiàn)記事本的主界面設計,包括主界面窗口的構(gòu)建、菜單的加入。雖然都是一些基本的操作,但是還是想將這些基本步驟完整地記錄下來,以便后續(xù)驗證。本文的開發(fā)環(huán)境為:系統(tǒng)為win7 64bit, IED是VS2008。好了,廢話不多說,直接開始流程介紹:

1. 新建win32 工程

本文采用windows API方式實現(xiàn)一個簡易記事本程序,因此在創(chuàng)建工程時選擇windows application,如圖1所示。同時為了方便,選擇以空的項目開始,要增加什么資源就在后續(xù)過程中添加即可。

圖1 新建win32空項目

2. 構(gòu)建主界面

在打開windows自帶的記事本程序可以看出,整個窗口就是一個帶有菜單、編輯控件的對話框,因此本文為了方便直接以DialogBox的方式構(gòu)建整個程序的主界面。具體的做法如下圖2所示:Resource Files –> Add –> Resource… :

圖2 新建對話框資源

在圖2中的資源窗口開啟后,選中Dialog資源并進行添加即可。此時得到一個系統(tǒng)默認的對話框,如圖3所示:

圖3 系統(tǒng)默認對話框

此時,需要將視圖切換到資源視圖進行操作。首先進行對話框的改名,一個有意義的變量名使得程序的可讀性更好,也更易于后期維護。因此將Dialog資源名改為IDD_MAIN。同時記事本中不存在OK以及Cancel按鈕,因此在對話框中直接選中這兩個按鈕并刪除。效果如圖4所示:

圖4 主界面對話框改名、刪除多余按鈕后效果

3. 構(gòu)建菜單

構(gòu)建菜單時,第一步操作與構(gòu)建主界面一致。在圖2的資源添加中選擇Menu并選擇新建。新增的菜單資源默認名為IDR_MENU1。同樣對其進行改名操作,改為IDR_MENU。后續(xù)將進行菜單項的填充。這里主要就是按照windows記事本中相應的文字填入就可以了,主要存在以下兩個小細節(jié)需要注意:

3.1 字母快捷鍵

在windows記事本中可以通過快捷鍵喚起相應的菜單項(例如打開記事本后,可以用alt+F打開文件選項,如圖5所示)。

圖5 windows菜單快捷鍵

這里的做法其實很簡單,就是在相應的字母前添加&,例如“文件(F)”就填寫為“文件(&F)”,這樣就可以默認開啟快捷鍵。對于“文件”選項下面的打開、保存等快捷鍵的設置同樣是在對應的字母前添加&。

3.1 構(gòu)建下拉分割線

在如圖5的文件下拉菜單中,可以看到用于分割“另存為”和“頁面設置”的分割線。那么如何產(chǎn)生這跟分割線呢,其實也非常簡單,直接在相應的菜單項右鍵,選擇“Insert Separator”,如圖6所示(因為我的機器上VS2008是英文版的所示菜單項都顯示的英文,對于中文的VS應該可以在同樣的地方找到“插入風格線”的選項吧):

圖6 添加菜單選項分割線

4. 調(diào)起主界面

在主程序中,目前只是為了顯示當前界面的效果,因此直接用DialogBox顯示IDD_MAIN.代碼如下:

/************************************************************************/
/* file  : main.cpp 整個應用程序的主入口
 * author : Huagang Li
 * date  : 2014-8-29 23:22:37
 * blogs : http://www.cnblogs.com/lhglihuagang/
 */
/************************************************************************/

#include <Windows.h>
#include "resource.h"  // IDD_MAIN定義位置

int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd )
{
  ::DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, NULL);
  return EXIT_SUCCESS;
}

因為Dialog中的窗口過程函數(shù)直接設置為NULL,因為這個窗口在打開后就無法通過關(guān)閉按鍵關(guān)閉(可以用資源管理器關(guān)閉),當前效果如下7所示:

圖7 錯誤的輸出結(jié)果?

從上圖7中可以看出,只是一個空白窗口,說好的菜單選項呢?最大最小化按鈕呢?窗口大小還不可變??這里就進入另一個注意點了:在新建了菜單資源并進行了編輯后,這個資源只是存在于工程文件中,并沒有將其添加到任何一個窗口中。因此,我們需要將菜單資源加入到IDD_MAIN窗口中。同時系統(tǒng)默認新建的對話框窗口是沒有最大最小按鈕的,因此也需要在IDD_MAIN的屬性中進行調(diào)節(jié),具體操作如下:

4.1 添加菜單、最大化最小化按鈕

在IDD_MAIN的“properties”中的Menu選擇“IDR_MENU”,同時將Minimize Box以及Maxmize Box都設為True。具體操作如下圖8所示:

圖8 添加菜單,最大,最小按鈕

4.2 窗口大小可調(diào)節(jié)

IDD_MAIN的“properties”中的Boader選擇“Resizing”,也就是將邊框的屬性設置為可調(diào)節(jié),操作如下圖9所示:

圖9 對話框大小可變

界面效果

在添加菜單、最大最小按鈕,同時修改了邊框調(diào)節(jié)屬性后,整個程序運行后主界面如圖10所示:

圖10 程序UI效果

結(jié)論

雖然真正的邏輯功能還沒有開發(fā),但是光是實現(xiàn)這個界面還是了一段時間研究。即使是這樣簡單的界面顯示程序其實也是可以學到一些小的知識點:

1. 菜單字母快捷鍵(在字母前面前面添加&)

2. 菜單下拉分割線(右鍵選擇添加分割線)

3. 新建的菜單資源需要加入到窗口中才能顯示(IDD_MAIN屬性中的MENU選擇IDR_MENU)

說明

這將是一個系列博文,后面會繼續(xù)補充邏輯功能的開發(fā)的步驟。希望能與更多博友交流。

如果你覺得這篇文章還可以,請點贊,哈哈~~

聲明:未作說明,則本文為年糕原創(chuàng)。注意:轉(zhuǎn)載須保留全文,如需修改請 聯(lián)系作者。

相關(guān)文章

  • 提高github下載速度的方法可達到2MB/s(100%有效)

    提高github下載速度的方法可達到2MB/s(100%有效)

    這篇文章主要介紹了提高github下載速度的方法可達到2MB/s(100%有效),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • git clone如何解決Permission Denied(publickey)問題

    git clone如何解決Permission Denied(publickey)問題

    文章介紹了如何解決Git clone時遇到的PermissionDenied(publickey)問題,包括檢查SSH key是否存在、生成新的SSH key、將SSH key添加到ssh-agent以及將SSH key添加到GitHub賬號,最后通過git clone下載代碼
    2024-11-11
  • 使用Git Hook技術(shù)定義和校驗代碼提交模板方式

    使用Git Hook技術(shù)定義和校驗代碼提交模板方式

    這篇文章主要介紹了使用Git Hook技術(shù)定義和校驗代碼提交模板方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Postman如何導出接口的幾種方法

    Postman如何導出接口的幾種方法

    本文主要介紹了Postman如何導出接口的幾種方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 瀏覽器關(guān)閉使session失效的問題多種解決方式

    瀏覽器關(guān)閉使session失效的問題多種解決方式

    直接關(guān)閉瀏覽器(或者強制關(guān)閉瀏覽器進程、死機等),服務器無法處理用戶退出網(wǎng)站的請求,此舉將會導致session失效,下面整理了一些解決方法,感興趣的朋友可以參考下哈
    2013-07-07
  • Git rebase命令使用實戰(zhàn)

    Git rebase命令使用實戰(zhàn)

    這篇文章主要介紹了Git rebase命令使用實戰(zhàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • 性能測試監(jiān)控網(wǎng)絡吞吐量過程詳解

    性能測試監(jiān)控網(wǎng)絡吞吐量過程詳解

    這篇文章是關(guān)于性能的文章,主要介紹了性能測試中測試監(jiān)控網(wǎng)絡吞吐量過程,文中給了詳細的示例分析,有需要的朋友可以借鑒參考下
    2021-09-09
  • 玩轉(zhuǎn)VSCode插件之Remote-SSH的使用情況

    玩轉(zhuǎn)VSCode插件之Remote-SSH的使用情況

    這篇文章主要介紹了玩轉(zhuǎn)VSCode插件之Remote-SSH的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • 完美解決瀏覽器輸入http被自動跳轉(zhuǎn)至https問題

    完美解決瀏覽器輸入http被自動跳轉(zhuǎn)至https問題

    很多朋友問小編瀏覽器輸入http被自動跳轉(zhuǎn)至https問題,到底該怎么解決呢,其實解決方法很簡單,主要關(guān)閉瀏覽器的HSTS功能就可以了,關(guān)于http自動跳轉(zhuǎn)至https的解決方法跟隨小編一起看看吧
    2021-05-05
  • HTTP協(xié)議詳解_動力節(jié)點Java學院整理

    HTTP協(xié)議詳解_動力節(jié)點Java學院整理

    這篇文章主要介紹了HTTP協(xié)議詳解,超文本傳輸協(xié)議(HTTP)是一種通信協(xié)議,它允許將超文本標記語言(HTML)文檔從Web服務器傳送到客戶端的瀏覽器
    2017-07-07

最新評論

囊谦县| 惠安县| 新建县| 昌平区| 河池市| 凉山| 闽侯县| 固安县| 长泰县| 老河口市| 二连浩特市| 南漳县| 太保市| 翁牛特旗| 新建县| 宜章县| 莱州市| 枝江市| 长葛市| 虞城县| 漳浦县| 交口县| 克山县| 灵丘县| 南宫市| 旺苍县| 江北区| 项城市| 莱州市| 娱乐| 定襄县| 苍溪县| 三门县| 永吉县| 通渭县| 滨州市| 三江| 临桂县| 敖汉旗| 太和县| 富平县|