天天看點

mfc修改應用程式外觀

1、在視窗建立前修改窗體外觀 在BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)函數中修改,其中CREATESTRUCT結構中有諸如視窗大小和标題等的修改,這裡注意的是如果要修改标題的話,需要修改CREATESTRUCT style &= ~FWS_ADDTOTITLE,不讓預設的文檔标題添加到視窗标題上。

   在視窗建立後修改窗體外觀 就在OnCreate函數裡修改,SetWindowLong(m_hWnd, GWL_STYLE, GetWindowLong(m_hWnd, GWL_STYLE) & ~WS_MAXIMIZEBOX );其中GetWindowLong是獲得已有的樣式,SetWindowLong是設定現在的樣式。

2、在視窗建立前修改光标、背景等 方法1,在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)函數中重新注冊一個視窗類(注:若要修改背景的話,則要在視類的PreCreateWindow中修改,方法是使CREATESTRUCT的lpszClass = 新注冊的視窗類的名字)方法2、調用AfxRegisterWndClass函數修改視窗的類型、光标、背景等

   在視窗建立後修改光标、背景等 方法1、就在OnCreate函數裡調用SetClassLong(m_hWnd, GCL_HICON, (LONG)m_hIcon[index]);函數

3、獲得應用程式目前執行個體句柄 方法1、調用AfxGetInstanceHandle()方法2 AfxGetApp()(獲得目前應用程式對象)->m_hInstance

4、m_wndToolBar.EnableDockingCBRS_ALIGN_ANY) 讓工具欄對象可以停靠,EnableDocking(CBRS_ALIGN_ANY)讓主架構視窗可以停靠

5、ShowControlBar(&m_newToolBar, !m_newToolBar.IsVisible(), false)用來控制顯示或隐藏控制條,如工具欄等

6、如果要在程式中設定某個菜單項的狀态,如是否顯示複選标記、該菜單項是否有效等,利用UPDATE_COMMAND_UI消息,顯示複選标記(pCmdUI->SetCheck),菜單項是否有效(pCmdUI->SetCheck->Enable())

7、自己添加消息三步走 1、在頭檔案中定義 #define UM_PROGRESS   WM_USER + 1設定消息号,隻要大于WM_USER就可以了 2、添加afx_msg LRESULT OnProgress(WPARAM wParam, LPARAM lParam)函數 3、在BEGIN_MESSAGE_MAP下添加ON_MESSAGE(UM_PROGRESS, OnProgress) 最後實作OnProgress這個函數

8、SendMessage 直接把消息發送給響應函數并且等到響應函數執行好以後才傳回到下一條語句執行

   PostMessage 将消息發送到消息隊列中,然後立即傳回,就執行下一條語句。不管消息有沒有送達