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 邊框,並在右上角擺上三個按鈕並編寫其點選...