雙擊VC對話框提示cannot add new member的解決方法

雙擊VC對話框提示cannot add new member的解決方法
 
 當我們爲vc對話框上的控件添加事件時,不知道大家沒有像我一樣在雙擊控件,爲其添加響應函數時,出現cannot add new member這樣的提示信息,我想,可能有朋友遇到過。只要出現這種情況,那麼在該對話無論你怎麼點擊都會出現上面的提示信息。

當然我也到網上看了下,雖然大家說法不一,但我想應該也都是正確的,不然不會亂寫的,只是客觀環境不同而已。好了,下面我們說說大致的解決方法。

1.:如果出現這種情況,我們可以先把工程給關閉,然後刪除 *.clw文件,然後再打開工程,並按CTRL+W打開ClassWizard,這裏我們輸入先前刪除的文件的文件名,然後點確定,便可重新生成一次*.clw文件。(注意:這裏的*代碼你的工程,如:我的工程叫Test,那麼我們就應該刪除Test.clw文件),這裏如果順序的進行ClassWizard頁面的話,那麼上面的問題上就解決了。

2.如果斷續出現類似Canot find header file for class 等提示信息(我今天就出現了這樣的信息),如果此時所提示的類確實在存在,那麼我們就需要去到該提示文件中去查找類和資源ID的關聯是否有問題(當然在這裏十有八九都有問題),今晚我的主要問題也就出現在這個地方,本來是爲ID爲IDD_BUS_CONSIGN的對話框資源關聯的CBusConsignView類,由於在

 //{{AFX_DATA(CBusConsignView)
enum { IDD = IDD_BUS_CONSIGN };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA

中把CBusConsignView類錯誤的寫CBusConsign,所以一直就出現如上所示的情況。

在這個地方,大部分朋友可能都會像我一樣,認爲

//{{AFX_DATA(CBusConsignView)已經被註釋掉了,所以寫什麼東西都不會有什麼影響,其實不然,在這裏我們的類名一定要寫正確,否則在帶有你的想當然的主觀意識在裏面的情況下,很難發現這樣的錯誤的。

總結一下:

出現這樣的錯誤的主要原因是沒有爲資源關聯的一個類,如果關聯了,那麼可能是某個地方寫錯了,所以只要大家仔細檢查一下此該資源相關的類,是可能解決這樣的問題的。

注意:我在重複了上述過程幾次後才發現,只有先把所有的地方都改掉,特別是上文提到的那幾個註釋地方,然後再關閉工程,然後再重建CLW文件,纔可以。

*我導致出現這個錯誤的原因是,我一時不小心把MFC的命名規則搞錯了,於是只好重新修改了類名,編譯和調用都是成功的,可是後來增加新的函數時出現這個問題。其中有幾個窗口是好的,主窗口幾個是不好的。沒辦法,手有點生。

另外:有時候兒刪除了一個對話框上的控件後,再編譯時報那個控件ID沒定義,這時有兩種方法,一是到RC文件裏刪除那個ID,這個大多數情況下是可以解決問題的,但有時候兒不行,那麼只能採用第二種情況,刪除CLW,NCB,(VS2005等高版本一樣),這樣再打開重新編譯鏈接就OK了.

發佈了56 篇原創文章 · 獲贊 5 · 訪問量 81萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章