1. 程式人生 > >一個MFC小程式介面的實現思路(視窗分割)

一個MFC小程式介面的實現思路(視窗分割)

  學了C語言C++之後,編寫的都是控制檯程式也就是那個黑框框,涉及到一點介面的也只是寫基於對話方塊的。所以一直想去寫一個基於單文件的或者多文件的,稍微大點的“小程式”。最後終於邁出了第一步,寫了一個答題的小程式,現在就介紹一下整個程式的實現思路和步驟(視窗分割和幾個控制元件的使用方法)

  程式的主體主要是整個介面的框架,至於具體的功能則可以在上面新增具體的控制元件和選單欄工具欄的選項。剛建立一個單文件程式,直接能執行出來的是檢視區只有一塊區域的介面。但是我們常用的程式基本檢視區都有幾塊,一方面可以顯示不同的資料內容:比如樹狀圖顯示,列表圖等等;另一方面,對於簡單的程式來說,我們要從檢視區中分割一塊出來當作操作面板,因為不能所用的功能都在選單欄和選項欄中。所以第一步也是很重要的一步,我們要根據程式的內容做檢視區的視窗分割,本例項將檢視區分成兩份,一邊用來顯示內容,一邊用作操作板。

  

  至於視窗分割的具體細節還有很多部落格描述,這裡不具體描述。簡單介紹幾種常用的檢視:CScrollView(滾動檢視)、CEditView(文字編輯檢視)、CFormView(對話方塊檢視)、CListView(列表檢視)、CTreeView(樹形檢視等),這些檢視都是從CView中派生而來的。例項採用的是CFormView檢視,因為要用作“操作面板”,該檢視建立後即跟對話方塊程式差不多,直接在上面新增控制元件就好,十分方便。所以子檢視如果要用作操作面板的,一般要使用CFormView。本文也用了CListView,該檢視可以將資訊以列表的形式顯示,有基本的資料操作功能(比如刪除整行資訊)。

   程式的登入介面:


設定輸出文字的字型和顏色(CFontDialog):


呼叫其他軟體和開啟任意文件:


  至於試題的切換功能我是在ondrow中實現的,當點選“下一題”按鈕時,題號加一,再InvalidateRect。這樣可以擦掉上一題的輸出內容,ondrow裡再打印出下一題的內容。

程式介面:


相關推薦

一個MFC程式介面實現思路視窗分割

  學了C語言C++之後,編寫的都是控制檯程式也就是那個黑框框,涉及到一點介面的也只是寫基於對話方塊的。所以一直想去寫一個基於單文件的或者多文件的,稍微大點的“小程式”。最後終於邁出了第一步,寫了一個答題的小程式,現在就介紹一下整個程式的實現思路和步驟(視窗分割和幾個控制元

微信程式學習九 -- 程式動畫實現旋轉animation @keyframes

前端一定離不開一個東西,動畫,無論是遊戲還是app還是網頁,都一定有動畫效果,微信小遊戲,小程式也有動畫效果,這裡有三種辦法實現小程式的動畫效果。 1、每幀setData() onReady: function () { var that = t

程式訊息推送含原始碼java實現程式推送,springboot實現微信訊息推送

最近需要開發微信和小程式的推送功能,需要用java後臺實現推送,自己本身java和小程式都做,所以就自己動手實現下小程式的模版推送功能推送。 實現思路 1 小程式獲取使用者openid,收集formid傳給java後臺 2 java推送訊息給指定小程式使用

程式的服務通知模板訊息 實現以及坑

一 開發文件的東西就不贅述了,獲取openid,form_id,template等相關資訊後,拼成陣列由後臺傳送到wx的介面就行了,這裡主要提兩個地方要注意: 1 2 有時候會出現服務通知訊息傳送成功,但是內容是空的,只是推送了一個模板的空殼。

2015-12-8-一個功能引導頁面的實現思路效果參考:美麗說app

原型 美麗說app的首頁引導效果圖如下: 下載美麗說的apk,解壓後,找到切圖如下: 可以看到,由於切圖右下角留出白色透明圓圈,所以有了上面的效果。 進一步思考 由於android螢幕尺寸的碎片化,所以如果我們要做一張固定

實現一個棧Stack,要求實現Push出棧、Pop入棧、 Min返回最值的操作的時間複雜度為O(1)

利用兩個棧 1. 一個用來儲存最小的元素 smin 2. 一個用來儲存所有元素 scur 3. 入棧時,scur直接壓入,smin棧頂與目標元素比較,若小之則壓入,否則不做處理 4. 出棧時,s

實現一個棧Stack,要求實現Push出棧、Pop入棧、Min返回最值的操作的時間複雜度為O(1)

這裡的要求呢,跟我們平時的stack操作是一樣的,那什麼地方不同呢?多了一個min方法,並且要求時間複雜度為O(1),那該怎麼做呢?O(1)的意思就是說,要用了,直接就能拿到,就好比陣列直到下標一樣,直接取。 那麼如果能夠將一個棧的棧頂一直存放的都是最小值呢?

【棧佇列】實現一個棧Stack,要求實現Push出棧、Pop入棧、Min返回最值的操作的時間複雜度為O(1)

問題分析 要記錄從當前棧頂到棧底元素的最小值,很容易想到用一個變數,每push一個元素更新一次變數的值。那麼問題來了,當執行pop操作時,上一次的最小值就找不到了。 解決方法 方法1、 使用一個棧。元素x入棧時,執行一次push(x),再push(min

微信程式——下拉重新整理分頁

1、先定義兩個變數:   // 分頁,載入 hasMoreData:true, globalPage:0,  2、函式處理:   3、與後臺互動:  1)、在獲取列表的方法裡面,將下面兩個引數以及其他所需

一個屌絲程式猿的人生八十三

  第二天,林蕭一直睡到下午2點多,才慢悠悠的從床上爬了起來。   起來以後,林蕭第一件事,就是按照offer上提供的列表,把入職材料準備了一下,其中缺失的一些材料,林蕭也趁著出去吃飯的時候,順便到影印店裡全部搞了一份。   等林蕭弄完以後,已經下午4點了,閒來無事,林蕭也沒有回宿舍,而

一個屌絲程式猿的人生八十

  林蕭心中微微忐忑的跟著面試官,二人剛走出幾步,面試官便帶著林蕭,來到了一間會議室。   會議室的面積不大,約莫只有10平米的樣子,除了一張桌子和幾把椅子以外,就沒有別的東西了。   二人進來的時候,會議室裡還有一個年紀和林蕭相仿的青年,看上去應該也是個應聘者,看到林蕭和麵試官進來,青年朝

一個屌絲程式猿的人生七十三

  “列印多少份好呢?”林蕭一邊思考,一邊自言自語的唸叨著。   素來有選擇恐懼症的林蕭,最怕的就是這類,看似是小問題的選擇題。   好在影印店的工作人員,經常接到這種列印簡歷的活兒,所以給了林蕭一個建議,這才避免了林蕭的糾結。   列印完簡歷後,林蕭先是吃了頓下午飯,隨後便帶著自己列印的

一個屌絲程式猿的人生七十

  第二輪專案演示結束了,大家又回到了看視訊學習的平淡日子。   值得一提的是,張建派的人自那以後,不僅沒有再提過林蕭玩貓膩的事,反而一個個都對林蕭畢恭畢敬。   這倒是讓林蕭派的人開了眼,雖然林蕭派的人都知道,對方一定是看到了U盤裡林蕭的專案,也肯定會被林蕭那專案中滿屏的註釋所震撼。  

微信程式使用第三方庫第三方js問題

原文:https://blog.csdn.net/u012421719/article/details/56676801 比如很多人會有這樣的問題: 小程式怎樣引用第三方js呢?

微信程式學習筆記二持續更新---程式網路請求封裝

寫小程式的你是否已經厭倦了傳送網路請求的wx.request?接著看吧。。。 一、目錄結構 在專案同級目錄下utils資料夾裡新建一個fetch.js檔案,(名字看自己喜好) 二、直接上程式碼 // 定義網路請求API地址 const baseURL = 'h

微信程式學習筆記四持續更新---征服scroll-view下拉重新整理

貼圖 大概實現這種使用swiper做tab切換,資料頁面下拉重新整理的效果。 官方提供的scroll-view作為容器,如果在scroll-view使用onPullDownRefresh實現下拉重新整理,會存在頁面重新整理卡,並且重新整理會出現在tab之上,使

程式之旅-----001準備工作

微信小程式---準備工作 (先附上微信小程式開發文件)____________開發文件 開發環境的安裝 工欲善其事必先利其器,既然要做小程式開發那麼開發工具必不可少(下載地址在這裡)-->開發者工具 獲取到開發者工具之後直接安轉即可(傻瓜式安裝)//可以選擇一下自己習慣的安裝路徑 安轉好微

微信程式,全域性樣式總的樣式和區域性樣式頁面樣式的用法和區別。

首先,全域性樣式寫在app.wxss裡面, 當然,頁面樣式當然寫在各個頁面的樣式裡, 第二 ,呼叫全域性樣式需要在你寫的類後面或前面加上你全域性樣式定義的類,(樣式的類越排後面,優先順序越高!) 比如: 這是我定義的全域性樣式 然後我要在區域性樣式裡呼叫

007-01、微信程式---元件之swipertab切換

此tab切換以登入頁面為參照。 1、WXMl <view class="tab-title"> <block wx:for="{{msg}}" wx:key="myke

12個用Java編寫基礎程式&經典案例收藏篇

如果是剛接觸或者剛學習java,練習一些基礎的演算法還是必須的,可以提升思維和語法的使用。 1、輸出兩個int數中的最大值 import java.util.Scanner; public class demo { public static void main(String[] arg