VC++6.0禁止改變單文檔窗口大小,修改標題的實現
剛才又有人在我QQ里問到如何禁止用戶該表自己單文檔窗體的大小,修改標題等等問題,其實這些問題不難,那么我現在來講一下這個東西的實現。 首先找到單文檔程序中的PreCreateWindow(CREATESTRUCT& cs)這個函數,這個函數是用來設置我們窗體的一些特征的,現在,我們來仔細看一下這個函數,如下: BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) return TRUE; 首先來看這個參數CREATESTRUCT& cs,是一個CREATESTRUCT結構的引用,那好,我們再來查詢下MSDN,看一下這個結構,如下: typedef struct tagCREATESTRUCT { // cs 我們來一個一個的看這些參數: LPVOID lpCreateParams:這個參數用來指向將被用于創建窗口的數據的指針。 HINSTANCE hInstance: 這個參數標識了擁有新窗口的模塊的模塊實例的句柄。 HMENU hMenu:這個參數標識了要被用于新窗口的菜單。如果是子窗口,則包含整數ID。 HWND hwndParent:這個參數標識了擁有新窗口的窗口。如果新窗口是一個頂層窗口,這個參數可以為NULL。 int cy:這個參數指定了新窗口的高。 int cx:這個參數指定了新窗口的寬。 int y:這個參數這個參數指定了新窗口的左上角的Y軸坐標。如果新窗口是一個子窗口,則坐標是相對于父窗口的;否則坐標是相對于屏幕原點的。 int x:這個參數定了新窗口的左上角的X軸坐標。如果新窗口是一個子窗口,則坐標是相對于父窗口的;否則坐標是相對于屏幕原點的。 LONG style:這個參數指定了新窗口的風格。 LPCTSTR lpszName:這個參數指向一個以null結尾的字符串,指定了新窗口的名字。 LPCTSTR lpszClass:這個參數指向一個以null結尾的字符串,指定了新窗口的Windows類名(一個WNDCLASS結構;更多的信息參見Win32 SDK文檔)。 DWORD dwExStyle:這個參數指定了新窗口的擴展風格。 在這些參數里面我們一般經常用到的是cy、cx、y、x、style、lpszName這幾個,需要特別注意。 好了,現在開始在PreCreateWindow(CREATESTRUCT& cs) BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) cs.style&=~FWS_ADDTOTITLE;//將FWS_ADDTOTITLE去掉 cs. lpszName = "標題"http://改變標題,替換自己的標題 這里我們要注意,給這些參數賦值的時候我們需要用&符號還有一個~符號,我來解釋一個: cs.style&=~WS_MAXIMIZEBOX; //禁用按動最大化按鈕 這句的意思是將WS_MAXIMIZEBOX從style里去掉,是個反與的操作,其他的類同。 |