step 2:新建一套新的doc/view/frame:新增新類cnewdoc,基類為cdocument(方法:insert——>new class(class type:mfc class),基類選擇cdocument)。新增新的框架類cnewchildframe,基類為cmdichildwnd,新增方法同上。新增新的檢視類cnewview,方法:insert——>new form,對話方塊中的文件類選擇為cnewdoc(預設也是)。
step 3:將選單資源idr_mainframe中新增選單項「功能」,並新增選單子項「功能1」和「功能2」,分別對應專案開發中的不同的業務邏輯。為了保證整個過程中選單項的一致性,在idr_mainframe上ctrl + c,然後ctrl +v兩次生成和idr_mainframe一樣的選單兩個,然後將這兩個選單分別改名為idr_mistype和idr_view2_tmpl(注意:先將後兩個選單名字copy再刪除它們,然後再改名,這裡選單的名字可以換,但是為了簡單就直接使用系統生成的預設選單名字,如果改變了名字要在new cmultidoctemplate時刻修改相應項)。
public:cmultidoctemplate*m_pdoctemplate1;
cmultidoctemplate* m_pdoctemplate2;
並將函式中由
vc自動生成的**作如下改變:
step 5:在
mainfrm.h
中新增兩個文件類變數記錄這裡的兩個不同的
document
,為簡單起見就宣告為
public
:
public: cmisdoc*m_pdoc1;
cnewdoc* m_pdoc2
注意:在cmainframe
建構函式中將上面兩個變數置為
null
(否則:))。並響應
idr_mainframe
的兩個選單專案「功能
1」和「功能
2」訊息,在各自的響應選單中分別新增響應函式:
if (m_pdoc1 != null) //已經開啟則啟用
else
和:
if (m_pdoc2 !=null)
else
至此就完成了整個工作,需要說明的是:
2) 這裡給出的是乙個示例**,實際開發中可以通過參考實現獲得自己想要實現的具體應用情況(例如檢視類的不同、數量不同,更重要的還有業務邏輯的不同實現等);
但是呢,到目前為止,
程式有點bug,當點選功能1,再關閉,再開啟,出現記憶體錯誤。這是由於功能1視窗關閉後,m_pdoc1並沒有相應地置為null。解決方法就是在view類中新增ondestroy訊息響應:
voidcmisview::ondestroy()
VC 多文件使用者介面設計
用習慣了 delphi vb windows form visual c 等稱之為 rad 的開發工具進行專案開發的都會很滿足這些工具和平台提供的快速介面開發的功效 你可以很容易就可以實現乙個 mis系統的管理介面,提供乙個主框架,點選主框架上的某乙個選單項就開啟乙個處理事務的視窗,這些視窗可以重疊...
《 使用者介面設計 》
在人和機器的互動過程 human machine interaction 中,有乙個層面,即我們所說的介面 inte ce 從心理學意義來分,介面可分為感覺 視覺 觸覺 聽覺等 和情感兩個層次。使用者介面設計是螢幕產品的重要組成部分。介面設計是乙個複雜的有不同學科參與的工程,認知心理學 設計學 語言...
使用者登入及API介面設計
原文 這篇思路可以算目前主流設計方案,其中可能產生的疑惑點解析 1 如果是web分離開發秘鑰可以採用非對稱加密 2 安全性上面採用https ps 在安全性要求不是非常嚴格的情況下,不用tls的 安全 都是掩耳盜鈴 華麗的分割線 1 web api的介面訪問分類 web api介面的訪問方式,大概可...