如何自定義視窗類名

2021-07-24 13:12:44 字數 1148 閱讀 7142

windows的標準應用程式都有約定的類名,如對話方塊的類名是#32770,文字框/編輯框類名是edit,按鈕類名為button等。這也有於我們查詢視窗,使用findwindows/findwindowex/getwindow等函式。但,如何把這些類名設為我們自定義的類名呢?

//註冊新類名///

// 獲取視窗類資訊。mfc預設的所有對話方塊的視窗類名為 #32770

::getclassinfo(afxgetinstancehandle(), _t("#32770"), &wc);

// 改變視窗類名

wc.lpszclassname = _t("myclassname");

// 註冊新視窗類,使程式能使用它

afxregisterclass(&wc);

///

這段**必須加上並且需要註冊,要不然程式啟動不了。

idd_limitdlginstance_dialog dialogex 0, 0, 195, 44

style ds_modalframe | ws_popup | ws_visible | ws_caption | ws_sysmenu

caption "limitdlginstance"

class "myprivateclassname" //add your class name here!

font 8, "ms sans serif"

begin

defpushbutton "ok",idok,138,7,50,14

pushbutton "cancel",idcancel,138,23,50,14

pushbutton "&test!",idc_button1,48,14,49,15

end

最後還要定製並註冊新視窗類。在應用程式類的initinstance()函式中新增以下**,以註冊資源檔案中用到的新視窗類:如前述。

注意:在呼叫函式::getclassinfo()時,請確保傳入的第乙個引數hinstance是包含你對話方塊資源所在的dll或exe的程序例項。

請確保資源中指定的class name與initinstance()中指定的視窗類名完全相同,否則程式不能執行。

更改完成,請重建工程,執行程式,使用spy++檢視最終效果吧!

自定義約束名

除了新增資料庫提供的約束條件外,我們還可以自定義約束 自定義約束使用 constraint關鍵字實現 語法格式 constraint 約束名 約束型別 新增約束的欄位名 create table employee eno number 4 ename varchar2 12 sal number 8...

WPF 自定義視窗

window類繼承自contentcontrol類。可以通過設定windowstyle none 完全移除視窗框架,從而建立乙個可完全定製的視窗,但是有各種各樣的不方便,所以本文使用windowchrome.windowchrome來自定義視窗 自定義視窗 參考遇到的一些難纏問題 屬性作用 值all...

繼承自定義視窗

繼承自定義視窗 author 周銀輝 date 2008 03 16 專案中有不少的彈出視窗,按照美工的設計其外邊框 包括最大化,最小化,關閉等按鈕 自然不同於window 自身的,但每個彈出框的外邊框都是一樣的。對其中乙個視窗而言,我們要取消其window 邊框,並在右上角擺上三個按鈕並編寫其點選...