單 多文件的窗體類屬性修改 VC MFC

2021-09-09 00:06:29 字數 2869 閱讀 7355

(本章節中例子都是用 vs2005 編譯除錯的)

視窗與視窗類關係

與視窗類關係 mfc 類視窗類中封裝了乙個視窗控制代碼,視窗銷毀時候,與之對應的mfc類視窗物件看其生命是否結束,但是mfc類視窗類物件銷毀時候,與之對應的視窗一定會被銷毀

修改程式外觀

設定視窗類屬性

在窗體生成前且視窗類註冊前

在cmainframe的precreatewindow函式中進行:

**示例(用vs2005除錯):

首先先看看未被改變的時,工程生成的單文件示例的執行結果:

第一種:(使初始化程式無選單欄)

在cmainframe的precreatewindow函式中新增下新增:

cs.hmenu = null;
執行結果:

第二種:(使初始化程式無選單欄)

在cmainframe的precreatewindow函式中新增下新增:

wndclass wndclass;

wndclass wndcls;

wndcls.cbcl***tra=0

;wndcls.cbwndextra=0

;wndcls.hbrbackground=(hbrush)getstockobject(white_brush);

wndcls.hcursor=loadcursor(null,idc_arrow);

wndcls.hinstance=afxgetinstancehandle();

wndcls.lpfnwndproc=::defwindowproc;

wndcls.lpszclassname=l"

test";

wndcls.lpszmenuname=null;

wndcls.style=cs_hredraw |cs_vredraw;

registerclass(&wndcls);

cs.lpszclass=l"

test

";

執行結果同上

第三種:(修改程式圖示)

首先為工程新增乙個圖示資源(資源 id 為 idi_icon1),資源檢視如下:

然後在cmainframe的precreatewindow函式中新增下新增:(afxregisterwndclass)

cs.lpszclass=afxregisterwndclass(cs_hredraw | cs_vredraw,0,0,loadicon(null,idi_warning));
執行結果:

在窗體顯示前且窗體類註冊後

說明在類中的 oncreate 函式實現,用setclasslong函式設定窗體類的屬性

**示例(用vs2005除錯):

首先先看看未被改變的時,工程生成的單文件示例的執行結果:

接著需要修改視窗圖示,先為工程新增乙個圖示資源(資源 id 為 idi_icon1),資源檢視如下:

然後在 cmainframe 的 oncreate 函式中新增下新增:(setwindowlong)

執行結果:

在窗體生成後

實現**(用vs2010除錯):

首先先看看未被改變的時,工程生成的單文件示例的執行結果:

接著需要修改視窗屬性,為文件程式在主選單欄上新增個 顯示/隱藏系統欄 的選單項,完成顯示/隱藏系統欄的這個功能.選單資源(選單資源 id 為 idr_mainframe,選單項 id 為 id_ch)檢視如下:

為選單項 顯示/隱藏系統欄 在框架類中新增事件響應函式(新增在框架類中,即 mainfrm 中),後在事件響應函式中新增相關操作,具體**如下:(setwindowlong)

//

獲得視窗大小

crect rc;

this->getwindowrect(&rc);

//判斷窗體是否有系統欄

if(getwindowlong(getsafehwnd(),gwl_style) &ws_caption)

else

//移動窗體到新矩形區中

this->movewindow(&rc);

執行結果:

注意:

函式在視窗完全建立完成後第乙個呼叫的函式並且在onpaint前相應

單文件和多文件的區別

框架視窗為應用程式的使用者介面提供結構框架,它是應用程式的主視窗,負責管理其包容的視窗,乙個應用程式的最頂層的框架視窗是應用程式啟動時建立的第乙個視窗。mfc單文件視窗一次只能開啟乙個文件框架視窗,而mdi應用程式執行時,在應用程式的乙個例項中開啟多個文件框架視窗,這些視窗稱作子視窗 child w...

單文件與多文件自動文摘的概述

單文件自動文摘 單文件自動文摘是根據使用者需求按照字數或百分比等方式從原檔案中提煉出最重要資訊生成文摘的過程 其結果為足以代表該原始檔案的精簡版本,且可作為人們或其他資訊系統的判斷與決策依據。單文件自動文摘在問答 搜尋引擎 資訊系統以及醫療 金融等領域都有廣泛地應用。目前,單文件自動文摘的方法主要分...

單文件 多文件 對話方塊的區別

本質上都是視窗程式,可以說都可以實現同樣的功能。只不過對話方塊框架 程式對於控制項組成的介面有更好的包裝,適應於介面通過很多控制項呈現的簡單程式。cdialog 類提供管理對話方塊的介面,visual c 對話方塊編輯器使設計對話方塊和建立它們的對話方塊模板資源更為容易,嚮導則簡化了在對話方塊中初始...