① MFC怎麼使用
【MFC控制項的使用方法】
VC++6.0控制項工具箱:
2 圖形控制項(picture):常用於顯示點陣圖(Bitmap)和圖標(Icon)
3 靜態文本(Static Text):用來在指定的位置顯示特定的字元串,一般用來標識附近另一個控制項的內容。顯示在靜態文本控制項中的字元串一般不再改變,但是在需要的時候,也可以通過調用相應的函數來進行設置。MFC提供了CStatic類支持靜態控制項。
4 編輯框(Edit Box):用來接收用戶輸入的字元串。通過選擇編輯框的選項,編輯框可以接收字元串、數字、密碼等;編輯框還可以設置成接收多行字元串的模式;可以自動進行大小寫轉換。編輯框可能向其父窗口發送多種控制項通知,如果用戶需要,可以對這些控制項通知進行處理。MFC提供了CEdit類支持編輯框控制項。
5 組成框(Group Box):用來包圍具有邏輯關系的一組控制項,在這些控制項的周圍加上邊界和標題。需注意的是,組成框僅僅是在視覺效果上對控制項進行「成組」,真正的「成組」工作還需要另外一些工作。
6 按鈕(Button):用來接收用戶的命令,應用程序在接收到用戶命令後,通常需要進行一些後台工作。按鈕可以響應單擊或雙擊動作,在按鈕接收到滑鼠動作後,向其父窗口發送相應的控制項通知,用戶可以對這些控制項通知進行消息映射,從而進行相應的處理。在一個對話框中,可以定義一個默認按鈕,這只要選中按鈕屬性中的「Default」選項。如果在對話框活動的時候按下了Enter鍵,則等同於單擊了默認按鈕。MFC提供了CButton類支持按鈕控制項。
7 復選框(Check Box):用來顯示某種可能的選擇,該項選擇是獨立的,用戶可以選中或取消該選項。在選項被選中的時候核選標記出現,選項被取消時核選標記消失。MFC中由CButton類對核選框進行支持,用戶可以通過SetCheck()函數和GetCheck()函數設置或獲取核選框當前的狀態。
8 單選按鈕(Radio Button):用來選擇某種可能的選擇,與核選框不同,該選項不是獨立的。一般是幾個單選按鈕組成一組,同組中的單選按鈕可以有也只能有一個按鈕被選中。MFC同樣使用CButton類對單選按鈕控制項進行支持,SetCheck()函數和GetCheck()函數對單選按鈕也是適用的。
9 組合框(Combo Box):列表框和編輯框的組合,用戶除了可以在列表中對已經存在的選項進行選擇外,還可以輸入新的選擇。MFC提供了CComboBox類對組合框控制項進行支持。
10 列表框(List Box):用來選擇一系列的可能選擇,用戶通過滾動條可以在這些選擇中瀏覽。在列表框中,可以進行單項選擇,也可以進行多項選擇,這取決於用戶在控制項屬性對話框中的設置。MFC提供了CListBox類對列表框控制項進行支持。
11、12 滾動條(Scroll Bar):這包括水平滾動條和垂直滾動條,除了在視覺效果上的方向不同外,水平滾動條在被滾動時發生WM_HSCROLL消息,而垂直滾動條在被滾動時發送WM_VSCROLL消息。MFC提供了CScrollBar進行支持。
13 微調按鈕(Spin Button):包括一對緊靠在一起的上下箭頭,使用微調按鈕可以增大或者縮小某個特定的數值。微調按鈕往往都需要一個「夥伴」控制項,這通常都是一個編輯框。當微調按鈕的向上箭頭被單擊時,編輯框中的數字就增大;反之則減小。MFC提供了CPinButtonCtrl類進行支持。
14 進度條(Progress):在進行一項需要佔有較長時間的操作時來反應當前的進度。當操作的進度不斷前進時,進度條就用特色顏色填充進度條框。用戶可以設定進度條的范圍和當前位置。MFC提供了CProgressCtrl類進行支持。
15 滑塊控制項(Slider):通常用來在程序中接受一系列離散的數值。用戶可以設置滑塊控制項的取值范圍,並可以為控制項加上刻度標記以顯示特定位置的含義。MFC提供了CSliderCtrl類進行支持。
16 熱鍵控制(Hot Key):熱鍵控制項看起來就像一個編輯框,但是在熱鍵控制項中能夠立刻反應用戶剛剛按下的鍵組合,這在設置程序的熱鍵時特別有用。熱鍵控制項只是在「視覺」上顯示了按鍵組合,設置熱鍵的工作還需要用戶添加代碼完成。MFC提供了CHotKey類進行支持。
17列表控制(List Control):按一定的排列順序顯示一系列帶圖標的字元串,列表控制項提供了四種顯示模式:大圖標、小圖標、列表和詳細信息。用戶可以向列表控制項中添加新的項,也可以控制列表控制項的顯示模式。MFC提供了CListCtrl類進行支持。
18樹形控制項(Tree Control):用來顯示一系列項目的層次關系,最典型的例子是顯示磁碟上的文件與文件夾。如果有子項目的話,單擊樹形控制項中的項目可以展開或者收縮其子項目。MFC提供了CTreeCtrl類進行支持。
19屬性表控制項(Tab Control):用來包含大量的控制項,可以滿足用戶顯示或者獲取大量數據的要求。每個屬性表又分為好幾個屬性頁,這些屬性頁由各自的標簽進行區分,這些屬性頁中都可以包容其他控制項。在顯示屬性表的時候,一次只能夠顯示一個屬性頁的全部內容,同時顯示其他屬性頁的標簽,用戶通過單擊標簽打開相應的屬性頁。MFC提供了CTabCtrl類進行支持。
20 動畫控制項(Animation):用來播放一段AVI格式的視頻剪輯。用戶可以控制視頻剪輯的播放、停止和定位,但也僅限於這些功能。動畫控制項設置不能播放音頻剪輯,如果用戶需要更高層次的視頻或者音頻的支持,請選用MCIWnd控制項。MFC提供了CAnimateCtrl類對動畫控制項進行支持。
21 高級編輯框(Rich Edit):編輯控制項功能的擴展。在高級編輯框中,除了簡單的輸入和編輯字元串外,用戶還可以為字元或段落指定特定的格式,用戶甚至還可以向高級編輯框中插入OLE項。高級編輯框基本上實現了一個帶格式的文本編輯器功能,而只需要用戶添加少量的介面。MFC提供了CRichEditCtrl類進行支持。
22 日歷控制項(Month Calender):看似與真正的日歷類似,操作也類似,直觀的為用戶提供了觀察和顯示當前日期的途徑。MFC提供了CMonthCalCtrl類進行支持。
23 日期/時間選擇器(Date Time Picker):向用戶提供了一種直觀的選擇日期和時間的方法、日期/時間選擇器在外觀上類似於一個組合框,但是當用戶單擊下拉箭頭時就會展開一個日歷控制項供用戶選擇,而一旦用戶做出了選擇,日期/時間選擇器會自動顯示新的日期/時間。MFC提供了CDateTimeCtrl類進行支持。
24 IP地址控制項(IP Adress):IP地址控制項用來輸入和編輯IP地址。該控制項外觀類似於一個編輯框,但是可以自動對輸入的字元按3個一組進行區分和加間隔圓點。IP地址控制項為開發支持Internet技術的程序提供了方便。MFC提供了CIPAddressCtrl類進行支持。
26 擴展組合框(Extended Combo Box):在普通組合框的基礎上還支持圖像列表。即,可以在組合框中顯示特定的圖標表示相應的選擇,而不僅僅是顯示文本。MFC提供了CComboBoxEx類進行支持。
所有控制項的公共屬性:
ID:控制項的資源標識。
Visiable:控制項是否可見。
Disabled:控制項是否被禁止、被禁止的控制項無法接受鍵盤和滑鼠輸入。
Group:是否從這個空間開始一個新組。
Tab stop:在程序中是否可以用【Tab】鍵切換到這個控制項。
Help ID:是否給控制項分配一個幫助標識,幫助標識基於控制項本身的資源標識。
Client edge:給控制項增加一個凹陷的邊界,使整個控制項看起來像是凹下去的一樣。
Static edge:給控制項增加一個邊界。
Modal frame:給控制項增加一個3維的框架,與Client edge相反,它是凸出來的。
Transparent:擁有此屬性的窗口是透明的,它下面的窗口不會被它遮掩住。
Accept files:擁有此屬性的窗口可以接收拖放文件,如果一個文件被拖動到這個控制項上面,控制項會收到WM_DROPFILES消息。
No parent notify:表示控制項不向其父窗口發送WM_PARENTNOTIFY消息。
Right aligned text:表示文本右對齊。
以上屬性可通過控制項的屬性對話框進行設置,在屬性對話框中按【F1】鍵可以查看屬性的幫助信息。
每一種控制項都由一個MFC控制項類來管理,當通過資源編輯器在對話框上添加一個控制項時,visualC++會自動為控制項類生成一個實例,即對象,並調用構造函數,當對話框關閉時,其各個子控制項對象被自動銷毀。
也可以不使用資源編輯器,自己在程序中寫代碼創建、顯示控制項並設置控制項的屬性。
所有的控制項類都繼承自CWnd,控制項的某些操作和屬性設置需要用到CWnd本身的成員函數,CWnd某些函數經常用來操縱控制項和設置控制項屬性。
SetWindowText:設置控制項上要顯示的標題文本,即用來設置控制項的caption屬性
GetWindowText:得到控制項的標題文本。
EnableWindow:設置控制項的Disabled屬性,即社會自控制項是否可以接收鍵盤和滑鼠的輸入。
SetWindowPos:改變窗口的大小、位置和Z軸次序。
MoveWindow:改變窗口的大小和位置
GetWindowRec:得到窗口的大小、位置(信息存放在一個矩形結構中)。
GetClientRect:得到窗口客戶區的大小(信息存放在一個矩形結構中 )。
ShowWindow:設置窗口的可見性(即窗口是否可見)。
SetWindowText/GetWindowText還可以用來設置/得到對話框的標題文本。
② 怎樣掌握mfc宏的基本原理和使用方法
這個宏,是和資源相關的,資源就是MFC工程里,你通過可視化編輯生成的菜單,圖片和對話框。就是xxxx.rc裡面的東西。如果你的dll里沒這些東西,則不需要使用這個宏如果你在dll里的某個函數里,要彈出一個對話框,則需要在這個函數前面加上這個宏,意思就是告訴系統,程序進入這個函數的時候,就從當前DLL去查找資源。也就是說,在函數堆棧結構中,(針對當前DLL)只需要在最外層入口的地方使用一次即可。並且使用了這個宏的介面,最好不要再嵌套調用,那樣就相當於上面說的「告訴系統,程序進入這個函數的時候,就從當前DLL去查找資源」執行了多次。
③ 求學過mfc圖像處理的(最好是醫學圖像處理)大神給小弟介紹下常用的功能,函數,方法
圖像處理如果用C++的話一般是用OpenCV開源庫,MFC一般只是做界面的。
要求有圖像處理經驗不只是要會寫圖像處理的代碼,重要的還是要熟悉圖像處理的基礎知識,比方圖像濾波(模糊、銳化)、邊緣提取、形態學、顏色等等各方面的知識。這些找本圖像處理的書看看就可以大致了解了。
寫代碼方面的話用C++的話就看OpenCV相關的書籍,看《學習OpenCV》那本書或者上OpenCV中文論壇看看,可以快速入手。
另外Matlab的圖像處理功能比較強大,上手迅速,如果Matlab熟的話更適合了。
④ mfc中不同方法話直線
通常的做法是把
HDC hdc;
hdc=::GetDC(m_hWnd);
MoveToEx(hdc,spoint.x,spoint.y,NULL);
LineTo(hdc,epoint.x,epoint.y);
::ReleaseDC(m_hWnd,hdc);
放在OnLButtonUp裡面,這樣每次在左鍵彈起時都可以響應到。
⑤ 如何學好VC和MFC(各前輩學習方法及感受整理
多看多練習,找會的人帶。
⑥ MFC OnSetActive方法是干什麼的
CPropertyPage::OnSetActive 當頁由用戶選擇並成為活動頁時,此成員函數由框架調用。
⑦ 什麼是MFC編程
MFC(Microsoft Foundation class)微軟基本類(庫),它是一個面向對象的應用程序架構。程序員利用它可以很方便搭建應用程序框架。
MFC結合了面向對象的編程技術和WINDOWS消息驅動的編程技術,並封裝了WIN32API,其設計好處是:消除了WIN32API的復雜性,封裝了WIN32API,統一了程序的概念,而且可擴展。
MFC實際上是微軟提供的,用於在C++環境下編寫應用程序的一個框架和引擎。VC++是Windows下開發人員使用的專業C++SDK,MFC就是掛在它之上的一個輔助軟體開發包。
(7)mfc常用方法擴展閱讀
MFC編程優勢
面對底層程序,它能很輕松的與Windows API或驅動程序結合,就是在自己的代碼中直接使用API函數,而API和驅動程序的資料都是以C語言為基礎的,這使得VC程序員能夠更輕松的使用Windows API。
這樣造成了一個很有意思的現象,即入門時VC程序員要付出更多的努力來學習,但是一旦掌握後,開發其他領域的程序或使用第三方軟體時,如工業控制類的程序,由於底層的程序都是用C語言編寫,反倒是VC程序員能夠更快的掌握該領域的編程技術。而很多其他的編程語言甚至找不到相關的資料。
這就說明VC(MFC)實際上是一種入門困難,但是擴展學習卻很輕松的語言框架。
⑧ MFC 畫線的幾種方式
在同一個線程中,當你使用動態畫線的方法時,如果沒有給消息環留出空閑時間,那麼界面就是不響應的。
解決辦法有很多,根據你的實際情況來甄別使用:
使用界面線程。這是最徹底的辦法,通過線程技術,將畫線放在子線程中,主線程的任何動作都不影響。(這個稍微復雜)
定時器畫線。如果你實現的是簡單動畫,那麼使用定時器是不錯的辦法,實現簡單,改動較小。
如果「動畫」不是你需要的,只是畫線實在很多,那麼推薦你使用內存DC的辦法,通過雙緩沖技術,在首次繪制前線畫好內存DC,並保持在View類中,每次只需要一個BitBlt語句就可以了,顯示會很快
⑨ MFC編程方法
從網上找些代碼看看
多看幫助文檔(MSDN),盡快熟悉MFC類的了解
其實現在你應該能做些東西了,有機會的進軟體公司, 真正的東西還是從工作中學習的
大家都是一步步走出來的
⑩ 新手學MFC,有什麼方法快速入門
先找一本VC的書,然後去做個小的系統,比如學生成績管理,圖書館管理系統,還有什麼其他的簡單的。邊做邊學,基本上5天就能入門。
PS:我在課程設計的時候完全不懂MFC,不懂如何連接資料庫,通過3天自學,2天編程,就基本上完成了 可以查詢,刪除,添加,修改功能的小項目。